Назад | Перейти на главную страницу

Почему HTACCESS RewriteCond% {HTTP_COOKIE} только для php и не работает для html?

Я пытался перенаправить весь прямой доступ в свою подпапку с помощью этого кода

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 заголовок. Однако этот (и любой другой) метод, который вы используете, не будет полностью надежным.