.htaccess基于HTTP_REFERER的重定向

时间:2012-09-27 09:41:45

标签: .htaccess redirect http-referer

我正在尝试按照上面所说的做,但我收到循环错误,有时会出现500错误!

我想要的是请求将网站的根“主页”页面重定向到/Welcome的用户 - 除非他们已经在浏览网站。

这是我的代码:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^mydomain\.co\.uk$ [N]
RewriteCond %{REQUEST_URI} /index.php [N]
RewriteRule ^$ /Welcome [L]

1 个答案:

答案 0 :(得分:2)

您可能收到500错误,因为[N]不是有效的RewriteCond标记,您是否在考虑[NC](无案例)?

此外,您的条件与规则的匹配直接相矛盾:

RewriteCond %{REQUEST_URI} /index.php

URI 中必须包含/index.php。虽然规则本身:

RewriteRule ^$ /Welcome [L]

URI 必须与^$匹配,这意味着它必须正好//永远不会是/index.php,因此规则会立即失效。也许你在想/或者?

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^mydomain\.co\.uk$ [NC]
RewriteRule ^(index\.php)?$ /Welcome [L]

这将使引用者与mydomain.co.uk无关,并将//index.php重写为/Welcome