Обработка неправильного url

8262110 8262110  
0
  25.04.2014 14:22       817     Помощь  
Подскажите пожалуйста сирому, как правильно реализовать через .htaccess данное условие.
Есть сайт написанный на чистом html, написана своя страница 404, соответственно в .htaccess есть строка ErrorDocument 404 404.html и она отрабатывает нормально при условии, что страницы не существует и сервер отдает 404.т.е. на конкретном примере это выглядит так:http://www.duetfeeriya.ru/about.html это нормальный URLhttp://www.duetfeeriya.ru/kjshdflkjhsdf эта страница соответственно переведет на 404Но вот дальше начинается загвоздка. Если попытаться ввести подобное в адресную строку, http://www.duetfeeriya.ru/about.html/kdkfjhdksjfhто выдается не до конца сформированная страница, а не 404 (ну правильно, сервер отдает ответ 200, страница то как бы существует)
Так вот, сам вопрос уважаемые знатоки:Как должно выглядеть правило в .htaccess, когда если вводится в адресной строке что то, что идет дальше *.html, сервер перенаправлял пользователя на 404 страницу? Спасибо заранее за внятный ответ.

Ответы на пост (13) Написать ответ
aliiix aliiix
16
25.04.2014 15:44
Дай содержание файла .htaccess Неизвестно что у тебя там понаписанно
0
k-park k-park
48
25.04.2014 16:18
Для начала поправьте все относительные пути на абсолютные (это в коде сайта), думаю и 404 заработает правильно. Хотя содержимое .htacess так же нужно смотреть
0
8262110 8262110
0
25.04.2014 16:45
404 и так отрабатывает правильно. когда путь пишешь http://www.duetfeeriya.ru/about.html/kdkfjhdksjfh он 200 ответ от сервера отдает, так что все верно.
0
k-park k-park
48
25.04.2014 16:50
Вот так у вас на этой странице путь до файлов выглядит: http://www.duetfeeriya.ru/about.html/style.css
А вы говорите правильно.
0
k-park k-park
48
25.04.2014 16:51
ИМХО: пишите абсолютные пути.
0
8262110 8262110
0
25.04.2014 17:07
А вопрос глупый. почему обязательно нужно абсолютные пути прописывать? разве нельзя обрабатывать запросы через .htaccess, чтобы автоматом отрубалось ненужное?
0
k-park k-park
48
25.04.2014 17:21
Вопрос не глупый, но смысл городить огород? проще абсолютные пути прописать.
Можно конечно прописать редирект через .htaccess для каждой страницы если за именем страницы следует символ, но вот только зачем так делать.
0
8262110 8262110
0
25.04.2014 22:43
спасибо за ответ.
Про абсолютные пути я понял, так и сделаю. А что касается .htaccess, не могли бы вы подсказать, как можно подобное реализовать все таки.
0
8262110 8262110
0
25.04.2014 16:41
##RewriteEngine On#DirectoryIndex index.html#RewriteCond %{HTTP_HOST} ^duetfeeriya\.ruRewriteRule ^(.*)$ http://www.duetfeeriya.ru/$1 [R=permanent,L]#RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ (/index\.html)/(.*)\ HTTP/RewriteRule ^(.*)$ http://www.duetfeeriya.ru/%2 [R=301,L]#ErrorDocument 404 /error/404.html#
0
k-park k-park
48
25.04.2014 16:49
c .htaccess вроде всё норм. попробуйте прописать абсолютный путь до файлов. У вас просто сейчас сервер не правильно страницы обрабатывает, по этому и недооформленая страница получается. После этого и правильно 404 должна обрабатываться.
0
8262110 8262110
0
25.04.2014 16:43
блин, что то все в кучу собралось, но вроде бы должно быть понятно.
0
aliiix aliiix
16
26.04.2014 02:28
Насколько я понял у тебя все строки закомментированы, в том числе и #RewriteEngine On
Да?
0
8262110 8262110
0
28.04.2014 08:07
нет, все что в файле находится, то в работе, просто тут форматирование не работает почему то. та решетка строкой выше.
0