【问题标题】:.htaccess Redirect based on HTTP_REFERER.htaccess 基于 HTTP_REFERER 重定向
【发布时间】:2012-09-19 01:34:37
【问题描述】:
我正在尝试执行上面所说的操作,但我遇到了循环错误,有时还会出现 500 错误!
我想要的是用户请求将站点的根“主页”页面重定向到 /Welcome - 除非他们已经在浏览该站点。
这是我的代码:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^mydomain\.co\.uk$ [N]
RewriteCond %{REQUEST_URI} /index.php [N]
RewriteRule ^$ /Welcome [L]
【问题讨论】:
标签:
.htaccess
redirect
http-referer
【解决方案1】:
您可能会收到 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