Apache 301重定向的重写规则

Apache 301重定向的重写规则,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我浏览了所有关于重写规则问题的答案。我尝试过这些建议,但我仍然不知道我做错了什么 我想将我们的旧URL重定向到新URL。例如: old url : http://www.xyz.com/abc/topics.html new url : http://www.xyz.com/index.php#first 我正在.htaccess中尝试以下规则: RewriteEngine on RewriteRule ^\/abc\/(.+)$ http://www.xyz.com/index.php#fi

我浏览了所有关于重写规则问题的答案。我尝试过这些建议,但我仍然不知道我做错了什么

我想将我们的旧URL重定向到新URL。例如:

old url : http://www.xyz.com/abc/topics.html
new url : http://www.xyz.com/index.php#first
我正在.htaccess中尝试以下规则:

RewriteEngine on
RewriteRule ^\/abc\/(.+)$ http://www.xyz.com/index.php#first [L,R=301]

任何建议都是非常感谢的

当然,您可以通过“mod_rewrite”来完成,但在这种情况下,我建议您使用,因为它更快、更简单(请参阅此SO回复:)

像这样:

Redirect permanent /abc http://www.xyz.com/index.php#first
试试这个:

RewriteRule ^abc\/(.+)$ http://www.example.com/index.php#first [L,R=301,NE]

谢谢,此解决方案重定向到目标页面,但在url中而不是在“#”中显示“%23”,因此不会滚动到锚。找到解决方案时,还必须使用[NE]标志。现在是:^abc\/(.+)$[L,R=301,NE]详细信息:
NE
标志防止特殊字符(如#,?,&)转换为十六进制代码<代码>L阻止执行进一步的规则,从而防止可能出现的“无效请求”警告。看:我用了mod_别名,看起来速度更快。但一个缺点是:xyz.com/abc/test重定向到