我在正则表达式方面很弱,我需要将任何 FileName.htm 或 FileName.html 页面请求重定向到 ./#FileName ,仅当请求来自外部链接时。这些文件都将驻留在根目录中。
这是我到目前为止所拥有的。它给了我错误:(
RewriteCond %{REQUEST_FILENAME} !index.html$|!index.htm$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !example\.com [NC]
RewriteRule ^([a-zA-Z0-9\-_]+)\.html$ /#$1 [NE, R]
第一行确保只重定向索引文件。 如果请求来自未知的引荐来源,第二行不会重定向 第三行从重定向规则中排除了我的域名 第四行将其重定向到哈希链接。
似乎不起作用。
并且如果有更有效的方式来写这个,我将不胜感激。
谢谢!
答案 0 :(得分:1)
尝试此规则:
RewriteCond $1 !=index [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com/ [NC]
RewriteRule ^([a-zA-Z0-9\-_]+)\.html?$ /#$1 [NE,R]