Пожалуйста, помогите мне здесь. Я хотел бы использовать .htaccess для перенаправления на основе происхождения запроса, например:
Запросы пользователей:
http://www.domain.com/subfolder/
И должны быть перенаправлены на:
http://www.domain.com/
Это очень просто выполнить, НО на домашней странице есть ссылка на :
http://www.domain.com/subfolder/
И это должно работать ТОЛЬКО КОГДА запрос приходит по этой ссылке.
Другими словами, моя цель - заставить всех пользователей перейти на главную страницу ПЕРЕД другими URL-адресами, даже если они знают URL-адрес страницы (отмеченный закладкой или другой), и он действительный.
Возможно ли это?
Это возможно, но нет гарантии 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/
Попробуйте это и дайте мне знать.
.