Недавно я внедрил страницу 404 на нашем сайте в нашей среде разработки. Мы работаем с Expression Engine 1.6.8; Я знаю, старый, но у меня нет ресурсов для обновления.
Мы используем параметры URL (строки запросов для параметров UTM и т. П.) В различных областях нашего веб-сайта для целей отслеживания. Что мы замечаем, так это то, что некоторые из них теперь отображают страницу 404 при доступе, теперь, когда функция 404 включена. Я не заметил этого раньше, потому что 404-е направили на домашнюю страницу, но я думаю, что они технически 404-е тоже тогда.
Например, это вызывает 404 (я заменил наш домен на ourwebsite.com в целях конфиденциальности:
Это не 404:
Кто-нибудь сталкивался с этим в более старых версиях EE, кто может дать некоторое представление о том, как мы можем это исправить? Мы действительно хотим, чтобы страница 404 была доступна для целей SEO. Но очевидно, что мы не хотим, чтобы действительные страницы с параметрами приводили к отображению страницы 404.
Вот как выглядит наш htaccess. Обратите внимание, что мы прошли ребрендинг и добавили перенаправления со старого домена на новый.
SetEnv APPLICATION_ENV production
RewriteEngine On
RewriteCond %{HTTP_HOST} ^ourolddomain.com [NC]
RewriteRule ^(.*)$ http://www.ournewdomain.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^ournewdomain.com [NC]
RewriteRule ^(.*)$ http://www.ournewdomain.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^www.ourolddomain.com [NC]
RewriteRule ^(.*)$ http://www.ournewdomain.com/$1 [L,R=301]
RewriteRule ^img[0-9]+/(.*)$ img/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
Также стоит отметить, что в нашем файле index.php я попытался изменить $ qtype с 0 на 1 (для path_info). Домашняя страница больше не 404, но ни один из моих пунктов меню не работает; все они направлены на домашнюю страницу. Изменение его с 0 на 2 для query_string не работает; домашняя страница все еще 404s.
Задача ещё не решена.
Других решений пока нет …