Я пытался перенаправить весь прямой доступ в свою подпапку с помощью этого кода
RewriteEngine on
RewriteCond %{HTTP_COOKIE} !user_cookie=[^;]
RewriteRule .* http://webhost.org/ [R=301,L]
Я понимаю, что он работал только с файлами OHP, но не с другими файлами, такими как HTML. Я попытался получить доступ к ссылке на файл PHP, и он работает так, как я планировал, но когда я получаю доступ к другому файлу с помощью .html
расширение, которое он не перенаправляет, как если бы он игнорировал условие .htaccess
.
Я новичок в .htaccess
. Что я делаю не так?
Информация о сервере:
Опубликованный вами код не обязательно применим к «прямым» запросам. Применяется, когда cookie не установлен (т. Е. Не отправляется обратно в Cookie
Заголовок HTTP-запроса) - это не одно и то же. (Предположительно вы устанавливаете файл cookie сеанса? Однако определение сеанса в браузере различается, поэтому в конечном итоге эти файлы cookie могут быть стойкий чем вы ожидаете.)
Если он «работает только для файлов PHP, но не для других файлов, таких как HTML», то это потому, что браузер не отправляет Cookie
Заголовок HTTP-запроса для запросов к вашим файлам PHP - по какой-то причине. Возможно, это "неправильные" файлы PHP и Cookie:
заголовок должен быть отправлен - как для файлов HTML?
Разница между вашими PHP и HTML файлами может заключаться в кешировании, домене и / или URL-пути. Это не имеет ничего общего с твоим .htaccess
сценарий.
Для проверки "прямого доступа" чаще проверяется наличие пустого Referer
заголовок. Однако этот (и любой другой) метод, который вы используете, не будет полностью надежным.