Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何在不炸掉Wordpress的情况下剥离.htaccess中的URL参数_Regex_Wordpress_.htaccess - Fatal编程技术网

Regex 如何在不炸掉Wordpress的情况下剥离.htaccess中的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 ^(?!

我试图从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 ^(?!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]

你为什么要这样做?你在用永久链接吗?如果是,你的永久链接结构是什么?