Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] неправильные линки!? (http://forum.oszone.net/showthread.php?t=92306)

Vampire 16-10-2007 19:22 661857

неправильные линки!?
 
В общем такая вот ситуация: после того как с помощью .htaccess на сайте включил обработку SSI в обычных хтмл страничках перестала срабатывать 404 ошибка при переходе по таким ссылкам как http://site.ru/1.html/chtougodno Как при вот таком вот линке выдать 404 ошибку или перенаправить на нормальную страничку стандартными средствами, директивой в .htaccess например. Понимаю, что можно на пхп написать модуль, который будет смотреть на ссылку и удалять из нее все лишнее, но случаем нет решения попроще?

Sham 16-10-2007 23:02 661953

Vampire, если Вас не затруднит, покажите пожалуйста содержимое Вашего файла .htaccess, заранее благодарю...

Vampire 17-10-2007 00:07 661986

Код:

AddType text/html .shtml .htm .html
AddHandler server-parsed .shtml .htm .html
Options +Includes
Options -Indexes
AddDefaultCharset Windows-1251

Вот отрывок, еще опустил настройку вывода страниц с ощибками вместо стандартных, но они нас вроде и не интересуют в этом топе.

Sham 17-10-2007 00:57 662008

если интересует mod_rewrite то например можно так:
без внешнего редиректа
Код:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.+) 404.htm [L]

или с внешним
Код:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.+) /404.htm [R,L]

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

Vampire 17-10-2007 23:06 662528

Пробовал оба варианта в конец штаццеса дописать и ничего не изменилось. Чего это может значить? с мод-реврайтом какие-то проблемы? По пхпинфо выдается, что он включен!? Может кривизна ручек сказывается, с мод-реврайтом до этого момента не приходилось общаться ;)

Sham 17-10-2007 23:28 662539

Vampire, подразумевается, что .htaccess лежит в корне, и там же имеется файл 404.htm (его мы подсовываем в случае отсутствия требуемого файла)... т.е. 404 шлет mod_rewrite (ну это типа обходной вариант такой...)...

конечно же вместо 404.htm можно указать свой файлик (поменять в правиле)...

Vampire 17-10-2007 23:42 662550

Ну это само сабой, что штаццес в корне сайта лежит, я в него код и добавлял. Ну и 404.html я тоже на свой 404.php, который тоже в корне лежит.

Было до:
Код:

ErrorDocument 404 http://tools-of-death.ru/404.php
ErrorDocument 403 http://tools-of-death.ru/403.php
AddType text/html .shtml .htm .html
AddHandler server-parsed .shtml .htm .html
Options +Includes
Options -Indexes
AddDefaultCharset Windows-1251

Стало:
Код:

ErrorDocument 404 http://tools-of-death.ru/404.php
ErrorDocument 403 http://tools-of-death.ru/403.php
AddType text/html .shtml .htm .html
AddHandler server-parsed .shtml .htm .html
Options +Includes
Options -Indexes
AddDefaultCharset Windows-1251
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.+) 404.php [L]

Редиректа не наблюдаю. :(

Sham 17-10-2007 23:59 662563

А Options FollowSymLinks имеется? Вообще ErrorLog лучше полистать - там наверняка что-нть интересненькое... и конечно же исключить возможные проблемы с форматом самого файла htaccess...

Цитата:

Цитата Vampire
server-parsed »

а что это за обработчик? почему не знаю? попробуй может строку закоментить эту...

а.... все понял... сори

Vampire 18-10-2007 00:13 662574

В логе ошибок по этому поводу не зафиксировано.

Sham 18-10-2007 00:37 662581

у тебя вроде все ок там - редиректится все... (только что проверил)...

Vampire 18-10-2007 00:44 662586

Сейчас, да и когда ты проверял откатил штаццес на старый вариант, т.е. без предложенного тобой реврайта.
А редиректится когда дать заведомо ложную ссылку. Например http://tools-of-death.ru/7890.html А вот если попробовать так http://tools-of-death.ru/cold.html/56565/6589 то выводится страничка, находящаяся по ссылке http://tools-of-death.ru/cold.html
Откуда такие линки берутся ума не приложу, по статистике смотрю, они есть, видимо с других сайтов возникают, на сайте все линки проверял, не должно ничего такого быть...

Sham 18-10-2007 00:53 662589

а попробуй добавить
Код:

AcceptPathInfo Off
должен 404 возвращать...

Vampire 18-10-2007 01:00 662592

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

Sham 18-10-2007 01:12 662597

это из апача 2...
тогда еще вариант (вместо предыдущих моих)
Код:

RewriteEngine On
RewriteRule \.(html?|php).+$ /404.htm [R,L]

в смысле - если что будет после расширения - редиректить на 404...

Vampire 18-10-2007 01:19 662598

Теперь вообще любая страничка, даже существующая на 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

Sham 18-10-2007 01:24 662602

а какие расширения то есть? если htm нету, но "?" лучше убрать :)...
Код:

RewriteRule \.(html|php).+$ /404.php [R,L]

Vampire 18-10-2007 01:34 662603

.html и .php больше никаких. Сейчас вроде все нормально работает. А можно сделать такчто-бы редирект был не на 404 страницу, а на страницу, которая в ссылке присутствует, только срубать с сылки все лишнее?

ладно я спать пошел, завтра вечером думаю добьем с тобой этот момент ;) Есче раз спасибо за уже достигнутые результаты!

Sham 18-10-2007 01:41 662607

Vampire, вот типа этого...
Код:

RewriteRule ^(.+\.(html|php)).+$ /$1 [R,L]

Vampire 19-10-2007 18:40 663845

Спасибо есче раз, все просто замечательно работает ;)

Prisoner 23-10-2007 11:17 665615

Некоторым жителям форума пора делать доп. статус (как "Contributor") - "полный знаток" :).


Время: 02:03.

Время: 02:03.
© OSzone.net 2001-