htaccess - перенаправление на основе источника запроса

Пожалуйста, помогите мне здесь. Я хотел бы использовать .htaccess для перенаправления на основе происхождения запроса, например:

Запросы пользователей:

http://www.domain.com/subfolder/

И должны быть перенаправлены на:

http://www.domain.com/

Это очень просто выполнить, НО на домашней странице есть ссылка на :

http://www.domain.com/subfolder/ 

И это должно работать ТОЛЬКО КОГДА запрос приходит по этой ссылке.

Другими словами, моя цель - заставить всех пользователей перейти на главную страницу ПЕРЕД другими URL-адресами, даже если они знают URL-адрес страницы (отмеченный закладкой или другой), и он действительный.

Возможно ли это?

2
задан 7 November 2015 в 11:33
1 ответ

Это возможно, но нет гарантии 100% успешности. Самым простым было бы использовать заголовок ${HTTP_REFERER}. Проблема в том, что пользователи могут отключить его в своих браузерах, а некоторые боты его не посылают. Это больше подходит для логики приложения, использующего сессии.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://www\.domain\.com/?$
RewriteCond ${REQUEST_URI} !^/$
RewriteRule ^(.*)$ http://www.domain.com/ [L,R=301]

Во второй строке $ является важной частью. Он будет совпадать только в том случае, если после .com или .com/ ничего нет. Третья строка является стандартным совпадением для корневого запроса_uri. Обратите внимание, что оба условия имеют оператор !, что означает, что если референт совпадает не с http://www.domain.com/

Попробуйте это и дайте мне знать.

.
0
ответ дан 3 December 2019 в 14:37

Теги

Похожие вопросы