我正在尝试将页面的标准 Wordpress“文件夹”URL 重定向到同一域上的新 URL,同时保留所有子文件夹、查询字符串等。从domain/old-path/
到domain/new-path/
.
现在我有这个:
RedirectMatch 301 ^/old-path(.*) /new-path$1
它有效,但domain/old-path
重定向到domain/new-path
,这是 WP,另一个重定向发生从domain/new-path
to domain/new-path/
。
我想要两者domain/old-path
并domain/old-path/
直接重定向到domain/new-path/
结尾/
。一直以来,就像我说的,保留所有“子文件夹”、查询字符串等。
...这是WP,另一个重定向发生从
example.com/new-path
到example.com/new-path/
。
如果/new-path
是物理目录,那么触发重定向的不是 WP,而是 Apache 的 mod_dir 正在“修复”URL。
但是,由于您使用的是 WordPress,因此最好使用 mod_rewrite ( RewriteRule
) 而不是 mod_alias 来执行重定向,RedirectMatch
以避免冲突。不同的模块在请求期间的不同时间执行,WP 已经使用了 mod_rewrite。
在任何现有 WP 指令之前,在.htaccess
文件顶部尝试类似以下内容:
RewriteRule ^dir/?(.*) /new-dir/$1 [R,L]
正如你所看到的,虽然斜线是可选的RewriteRule
模式,这是从来没有通过正则表达式捕获和斜线始终存在于替代。
仅当您确定它工作正常时才将R
(临时)重定向更改为R=301
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句