Regex 如何在不炸掉Wordpress的情况下剥离.htaccess中的URL参数
我试图从Wordpress友好的URL中删除无关参数,例如:Regex 如何在不炸掉Wordpress的情况下剥离.htaccess中的URL参数,regex,wordpress,.htaccess,Regex,Wordpress,.htaccess,我试图从Wordpress友好的URL中删除无关参数,例如: /foo-post-name.html?sf123456=1 我已将以下指令添加到.htaccess RewriteRule ^(?!wp-admin))(.*)$ $1? [R=301,L] 这确保了除/wp admin之外的任何URL都会删除URL参数。然而,我刚刚意识到我还需要从URL参数strippage中排除像/?p=12345&preview=true这样的URL 我已尝试将其更改为: RewriteRule ^(?!
/foo-post-name.html?sf123456=1
我已将以下指令添加到.htaccess
RewriteRule ^(?!wp-admin))(.*)$ $1? [R=301,L]
这确保了除/wp admin之外的任何URL都会删除URL参数。然而,我刚刚意识到我还需要从URL参数strippage中排除像/?p=12345&preview=true这样的URL
我已尝试将其更改为:
RewriteRule ^(?!wp-admin|p=))(.*)$ $1? [R=301,L]
…但这不起作用(500服务器错误)。我应该如何修改我的正则表达式,以便不重定向/?p=1234
我需要支持的唯一参数是“p和preview”。您不能在RewriteRule中匹配查询字符串,但可以在RewriteCond中使用*%{query\u STRING}*。这有点混乱,但这就是你想要做的吗
RewriteCond %{REQUEST_URI} !^/wp-admin
RewriteCond %{QUERY_STRING} ^p=([0-9]+)
RewriteCond %{QUERY_STRING} !preview=true
RewriteRule (.*) /$1?p=%1 [L,R=301]
RewriteCond %{REQUEST_URI} !^/wp-admin
RewriteCond %{QUERY_STRING} ^p=([0-9]+)
RewriteCond %{QUERY_STRING} preview=true
RewriteRule (.*) /$1?p=%1\&preview=true [L,R=301]
RewriteCond %{REQUEST_URI} !^/wp-admin
RewriteCond %{QUERY_STRING} !^p=[0-9]+
RewriteCond %{QUERY_STRING} preview=true
RewriteRule (.*) /$1?preview=true [L,R=301]
RewriteCond %{REQUEST_URI} !^/wp-admin
RewriteRule (.*) /$1? [L,R=301]
你为什么要这样做?你在用永久链接吗?如果是,你的永久链接结构是什么?