Подскажите как исправить технический момент с ошибкой 404

A
На сайте с 29.03.2012
Offline
23
639

Добрый день!

Сайт сделан на самописной CMS; если в URL добавляется какой-нибудь код для статистики (например при переходах через AdWords), то сайт показывает страницу с 404 ошибкой.

Получается примерно такая ссылка http://site.ru/page1.html?gqwlid=qqwewqew и на странице page1.html просто показывается 404 ошибка.

Как можно это исправить?

WhiteKrol
На сайте с 08.05.2012
Offline
38
#1

Напишите содержимое вашего .htaccess

A
На сайте с 29.03.2012
Offline
23
#2

на хостинге нет этого файла; что он должен содержать?

IL
На сайте с 20.04.2007
Offline
435
#3
Artemeo:
Как можно это исправить?

разбираться, как работает CMS. Возможно, для определения страницы используется полный URI - обрезать до вопроса.

Artemeo:
на хостинге нет этого файла;

А если включить отображение скрытых файлов в FTP-клиенте? Или есть файл page1.html?

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
A
На сайте с 29.03.2012
Offline
23
#4

Вот содержание файла .htaccess :

RemoveHandler .html

AddType application/x-httpd-php .html

AddDefaultCharset windows-1251

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]

RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

В этом дело?

ValdisRu
На сайте с 02.10.2006
Offline
139
#5
Artemeo:
Вот содержание файла .htaccess :

RemoveHandler .html
AddType application/x-httpd-php .html
AddDefaultCharset windows-1251

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>


В этом дело?

насколько я понимаю все урлы (кроме имеющихся на сайте реальных файлов) обрабатывает скрипт /index.php в этом скрипте скорее всего проверяется $_SERVER['REQUEST_URI'] на соответсвие нужной статье в бд, т.е. например ури /page1.html соотвествует статье с идентификатором 1 но вот если добавить какие либо гет параметры /page1.html?gqwlid=qqwewqew то этот урл уже не будет соответсвовать и не найдя соответсвия скрипт отдаете 404

вывод - надо допиливать этот движок чтобы заработало

но тут есть еще один подводный камень - если вы исправите движок и он будет отдавать по запросу /page1.html?gqwlid=qqwewqew точно такую же страницу как и при /page1.html то ПС могут проиндексировать эти страницы и получится очень много дублей что не есть хорошо

лично я бы сделал так, если есть параметры - сначала обработать их - внести в статистику, пользователю отправить куку с сессией (в которой связать его с этими переданными параметрами) и сделать 301 редирект на урл без параметров

тогда можно будет и статистикой пользоваться и не бояться что ПС проиндексируют дубли (ПС получив редирект от урла /page1.html?gqwlid=qqwewqew склеит его с основным урлом /page1.html и не станет добавлять в индекс урл с параметрами)

Обалденный заработок на социальных сетях (https://goo.gl/Qtsq6M)
A
На сайте с 29.03.2012
Offline
23
#6

Ясно, спасибо!

ValdisRu
На сайте с 02.10.2006
Offline
139
#7
Artemeo:
Ясно, спасибо!

пожалуйста, кстати есть еще вариант и попроще - чтобы избежать индексации дублей (которые с параметрами) можно просто добавить соответсвующее запрещающее правило в файл роботс.тхт, но тут нужно проверить нет ли у вас каких либо других урлов с параметрами но индексация, которых важна (может быть и такой случай)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий