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

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

Пожалуйста, помогите мне здесь. Я хотел бы использовать .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 / ничего нет. Третья строка - это просто стандартное совпадение для корневого request_uri. Обратите внимание, что оба условия имеют! оператор, что означает, если реферер не соответствие http://www.domain.com/

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