用于301重定向的RewriteRule

moo*_*ife 9 apache .htaccess mod-rewrite

我在重写规则问题上经历了所有已回答的线程.尝试了这些建议,但我仍然不知道我做错了什么.

我想将旧网址301重定向到新网址.例:

old url : http://www.xyz.com/abc/topics.html
new url : http://www.xyz.com/index.php#first
Run Code Online (Sandbox Code Playgroud)

我正在尝试遵循.htaccess中的规则:

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

任何建议都非常感谢

Jos*_*lls 22

试试这个:

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

  • 找到解决方案,也必须使用[NE]标志.现在它是:^ abc\/(.+)$ http://www.xyz.com/index.php#first [L,R = 301,NE] (3认同)
  • 详细信息:`NE`标志可防止特殊字符(如#,?,&)转换为十六进制代码.`L`阻止执行进一步的规则,从而防止可能的"无效请求"警告.请参阅:https://httpd.apache.org/docs/2.4/rewrite/flags.html (2认同)