![]() |
неправильные линки!?
В общем такая вот ситуация: после того как с помощью .htaccess на сайте включил обработку SSI в обычных хтмл страничках перестала срабатывать 404 ошибка при переходе по таким ссылкам как http://site.ru/1.html/chtougodno Как при вот таком вот линке выдать 404 ошибку или перенаправить на нормальную страничку стандартными средствами, директивой в .htaccess например. Понимаю, что можно на пхп написать модуль, который будет смотреть на ссылку и удалять из нее все лишнее, но случаем нет решения попроще?
|
Vampire, если Вас не затруднит, покажите пожалуйста содержимое Вашего файла .htaccess, заранее благодарю...
|
Код:
AddType text/html .shtml .htm .html |
если интересует mod_rewrite то например можно так:
без внешнего редиректа Код:
RewriteEngine On Код:
RewriteEngine On |
Пробовал оба варианта в конец штаццеса дописать и ничего не изменилось. Чего это может значить? с мод-реврайтом какие-то проблемы? По пхпинфо выдается, что он включен!? Может кривизна ручек сказывается, с мод-реврайтом до этого момента не приходилось общаться ;)
|
Vampire, подразумевается, что .htaccess лежит в корне, и там же имеется файл 404.htm (его мы подсовываем в случае отсутствия требуемого файла)... т.е. 404 шлет mod_rewrite (ну это типа обходной вариант такой...)...
конечно же вместо 404.htm можно указать свой файлик (поменять в правиле)... |
Ну это само сабой, что штаццес в корне сайта лежит, я в него код и добавлял. Ну и 404.html я тоже на свой 404.php, который тоже в корне лежит.
Было до: Код:
ErrorDocument 404 http://tools-of-death.ru/404.php Код:
ErrorDocument 404 http://tools-of-death.ru/404.php |
А Options FollowSymLinks имеется? Вообще ErrorLog лучше полистать - там наверняка что-нть интересненькое... и конечно же исключить возможные проблемы с форматом самого файла htaccess...
Цитата:
а.... все понял... сори |
В логе ошибок по этому поводу не зафиксировано.
|
у тебя вроде все ок там - редиректится все... (только что проверил)...
|
Сейчас, да и когда ты проверял откатил штаццес на старый вариант, т.е. без предложенного тобой реврайта.
А редиректится когда дать заведомо ложную ссылку. Например http://tools-of-death.ru/7890.html А вот если попробовать так http://tools-of-death.ru/cold.html/56565/6589 то выводится страничка, находящаяся по ссылке http://tools-of-death.ru/cold.html Откуда такие линки берутся ума не приложу, по статистике смотрю, они есть, видимо с других сайтов возникают, на сайте все линки проверял, не должно ничего такого быть... |
а попробуй добавить
Код:
AcceptPathInfo Off |
500 вылезла :(
Строчка из эррор-лога: [Thu Oct 18 00:57:36 2007] [alert] [client 217.23.191.155] ......./.htaccess: Invalid command 'AcceptPathInfo', perhaps mis-spelled or defined by a module not included in the server configuration |
это из апача 2...
тогда еще вариант (вместо предыдущих моих) Код:
RewriteEngine On |
Теперь вообще любая страничка, даже существующая на 404 редиректится. А если учесть, что 404 страница у меня через несколько секунд редиректится на главную пагу, а та из-за кода опять на 404 идет, зацикленный редирект на 404 получился прям какой-то ;)
А апачь на сервере судя по пхпинфо версии 1.3.37 Код:
Apache Version Apache/1.3.37 (Unix) mod_fastcgi/2.4.2 FrontPage/5.0.2.2635 PHP/4.4.7 with Suhosin-Patch mod_ssl/2.8.28 OpenSSL/0.9.7e-p1 |
а какие расширения то есть? если htm нету, но "?" лучше убрать :)...
Код:
RewriteRule \.(html|php).+$ /404.php [R,L] |
.html и .php больше никаких. Сейчас вроде все нормально работает. А можно сделать такчто-бы редирект был не на 404 страницу, а на страницу, которая в ссылке присутствует, только срубать с сылки все лишнее?
ладно я спать пошел, завтра вечером думаю добьем с тобой этот момент ;) Есче раз спасибо за уже достигнутые результаты! |
Vampire, вот типа этого...
Код:
RewriteRule ^(.+\.(html|php)).+$ /$1 [R,L] |
Спасибо есче раз, все просто замечательно работает ;)
|
Некоторым жителям форума пора делать доп. статус (как "Contributor") - "полный знаток" :).
|
Время: 02:03. |
Время: 02:03.
© OSzone.net 2001-