我的正则表达式 较弱 ,仅当请求是从外部链接传入时,我才需要将任何 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]
第一行 确保仅索引文件不被重定向。 如果请求来自未知引荐来源 , 则第二行 不重定向。 第三行将 我的域排除在重定向规则之外。 第四行将其 重定向到哈希链接。
这似乎不起作用。 如果有更有效的方式来编写此代码,请多谢。谢谢!
尝试以下规则:
RewriteCond $1 !=index [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com/ [NC] RewriteRule ^([a-zA-Z0-9\-_]+)\.html?$ /#$1 [NE,R]