Не удается получить доступ к веб-страницам с помощью сканеров после удаления index.php из URL - PullRequest
2 голосов
/ 29 июля 2011

Я удалил index.php из URL своего приложения, представленного в Интернете.Но впоследствии у меня возникает странная проблема.

Я могу получить доступ к веб-сайту с помощью браузера следующим образом ... http://www.oakquotes.com/quotes/author/etc-etc (обратите внимание на отсутствие index.php), но когда я пытаюсь получить доступ к тому же URL-адресу с помощью сканератогда я получаю запрещенную ошибку http 403.

Вот файл robots.txt:

User-agent: *
Allow:/quotes/topic
Allow:/quotes/author
Disallow:

Sitemap: http://www.oakquotes.com/Sitemap.xml
Sitemap: http://www.oakquotes.com/author_sitemap.xml
Sitemap: http://www.oakquotes.com/topic_sitemap.xml

Я думаю, что виновником является правило .htaccess, которое я написал для удаления index.php изURL.Вот код для htaccess:

<IfModule mod_rewrite.c>
    # For security reasons, Option followsymlinks cannot be overridden.
    #  Options +FollowSymlinks
    Options +SymLinksIfOwnerMatch
    RewriteEngine On
    RewriteBase /
    RewriteCond $1 !^(index\.php|images|robots\.txt|Sitemap\.xml|topic_sitemap\.xml|author_sitemap\.xml|search\.html|style|js|system|application|quotes/authors|quotes/topic|application/controllers|application/views)
    RewriteRule ^(.*)$ ./index.php/$1 [L]
</IfModule>

Я пропустил шаг?Пожалуйста, помогите мне в этом отношении.Спасибо.

1 Ответ

0 голосов
/ 10 сентября 2011

В обычном браузере вы также получаете ошибку 403. Причина отображения веб-сайта заключается в следующем:

Обычная проверка подлинности всегда возвращает ошибку 403. На большинстве серверов глобальное правило для ErrorDocument 403 определено как 403.html. Если возникает ошибка 403, сервер внутренне будет искать документ с ошибкой 403.html. Этот документ не существует, и ваш RewriteRule совпадает, и сервер возвращает обработанную страницу index.php. Вот почему вы видите веб-страницу, даже если она вернула ошибку 403. Еще сложнее, поскольку сайт 403.html не существует, 404 (страница не найдена) запускается при поиске сайта 403.html. Это проблема с глобально определенными ErrorDocuments. Ошибка 500 вызовет ошибку 404, поскольку определено значение 500.html.

Попробуйте определить вашу единственную обработку ErrorDocument в вашем .htaccess, и вы увидите разницу.

ErrorDocument 403 "Access denied"

Это правило напечатает сообщение об ошибке, если ошибка 403 сработает, и остановит рендеринг index.php

...