Нужна помощь по файле .htaccess и ошибке 404

12
S1
На сайте с 28.03.2010
Offline
72
#11
kxgoo:
да, файл существует, можно по урлу зайти и посмотреть его содержимое, отдает код 200.

Решил проблему следующим образом



Теперь все несуществующие страницы отображают содержимое файла 404.php и отдают код 200, вроде бы все ок, но другая проблема, также и все существующие страницы вместо того чтоб отображать себя - отображают содержимое файла 404.php ну и код тоже 200

Если я правильно понял задачу, то с помощью .htaccess файла, эту задачу не решить.

Еще раз повторюсь, нужно создать все необходимые страницы на сайте.

ICQ: 3533966 | Skype: spider13software | E-Mail: admin@spider13.net | Telegram: spider13software| Разработчик Node.js (https://spider13.net/) | Заметки онлайн (https://notes.spider13.net/)
J
На сайте с 20.02.2014
Offline
120
jkm
#12

Вообще странно что RewriteCond %{REQUEST_FILENAME} !-f срабатывает для существующих файлов.

Тогда можно попробытвать составить правила относительно %{DOCUMENT_ROOT}


RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule .* /404.php [L]

или так


RewriteCond %{THE_REQUEST} \ (\S+)
RewriteCond %{DOCUMENT_ROOT}%1 !-f
RewriteRule .* 404.php [L]
kxgoo
На сайте с 29.02.2008
Offline
120
#13
jkm:
Вообще странно что RewriteCond %{REQUEST_FILENAME} !-f срабатывает для существующих файлов.

Прошу прощения, был немного не прав, оно только главную страницу отображало как файл 404.php (например http://site.ua) - я потому и подумал на все странички, но если указать прямой линк типа http://site.ua/index.php - то все работает, остальные существующие страницы тоже работают, проблема осталать столько при прямом заходе на главную site.ua

Adverte - Лучшие тизерные сети (http://adverte.net)
J
На сайте с 20.02.2014
Offline
120
jkm
#14

Тогда осталось дополнить проверкой что запрошенный адрес не является папкой


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /404.php [L]
kxgoo
На сайте с 29.02.2008
Offline
120
#15
spider13:
Если я правильно понял задачу, то с помощью .htaccess файла, эту задачу не решить.

Ну как-бы всегда должно быть несколько вариантов решения проблемы, если не одним так другим способом 🍾

jkm:
Тогда осталось дополнить проверкой что запрошенный адрес не является папкой

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /404.php [L]

Ураа, все работает, спасибо большое за помощь ☝

M
На сайте с 04.12.2013
Offline
223
#16

Поздравляю. Переделали правильный вариант на неправильный :D

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
kxgoo
На сайте с 29.02.2008
Offline
120
#17
miketomlin:
Поздравляю. Переделали правильный вариант на неправильный :D

По вашему мнению, как будет правильно? У меня так все работает, ниже сожержимое хтаццесса полностью:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /404.php [L]

AddType application/x-httpd-php .htm .html
M
На сайте с 04.12.2013
Offline
223
#18

Правильно – это либо отдавать уникальные страницы, либо 404-ую ошибку.

Сделайте хотя бы в вашем 404.php вывод какого-нибудь рандомного контента.

12

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