htaccess reqrite redirect conflict

时间:2017-09-07 05:22:12

标签: apache .htaccess mod-rewrite

我在我的网站上使用以下代码进行重定向 -

RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$ http://mywebsite.com/$4

它工作正常,但它不会将自定义URL参数传递给新URL。因此,.com/?abc之后的任何内容只会转换为.com/并导致跟踪错误。

我尝试使用[QSA]但是我认为它导致.htaccess中的重定向重写冲突。什么是可能的出路?

.htaccess上的其他代码包括:

BEGIN W3TC Browser Cache
<IfModule mod_mime.c>

BEGIN WordPress
<IfModule mod_rewrite.c>

2 个答案:

答案 0 :(得分:0)

尝试将RedirectMatch替换为:

RewriteEngine On
RewriteRule ^[0-9]{4}/[0-9]{2}/[0-9]{2}/(.*) http://mywebsite.com/$1 [L,R=301,QSA]

示例:301s http://mywebsite.com/1234/12/12/test?foo=barhttp://mywebsite.com/test?foo=bar

在这里演示:http://htaccess.mwl.be?share=ce6d907e-3559-5caf-8841-8f218d54f367

答案 1 :(得分:0)

所以我的问题终于解决了。看起来手动设置规则,w3total缓存和/或yoast插件之间存在冲突。禁用/删除它们解决了这个问题。