我想从WordPress文件中添加.htaccess站点上的重定向
当前URL:
example.com/papaya-exfoliator/?uf它将被重定向到
example.com/produit/papaya-exfoliator/目前,“全在一重定向”插件已经安装完毕,没有正则表达式就能正常工作。
就像我点击example.com/papaya-exfoliator,那么它将重定向到example.com/produit/papaya-exfoliator/,但是如果URL中有任何额外的数据,比如/?uf,那么重定向就无法工作。
发布于 2020-10-14 16:43:26
您可以在.htaccess文件的顶部执行如下操作,以便从/papaya-exfoliator/?uf重定向到/produit/papaya-exfoliator/
RewriteEngine On
RewriteCond %{QUERY_STRING} ^uf$
RewriteRule ^(papaya-exfoliator)/?$ /produit/$1/ [QSD,R=302,L]请注意,RewriteRule模式(即。^(papaya-exfoliator)/?$)只与URL路径匹配。你需要使用一个附加的条件。RewriteCond指令)来匹配查询字符串(即。uf)。
我已经使源URL上的尾斜杠是可选的,因为在您的问题中使用了这两个版本(有和没有尾随斜杠)。
为了从目标URL中删除查询字符串,必须使用QSD标志(否则默认情况下会复制查询字符串)。QSD标志需要Apache2.4。如果您仍然使用Apache2.2,则需要将一个?追加到替换字符串的末尾(实质上是追加一个空查询字符串)。例如:/produit/$1/?。
$1反向引用通过从请求的papaya-exfoliator捕获papaya-exfoliator来节省重复。
如果您希望重定向,而不管查询字符串是否存在,那么只需删除RewriteCond指令即可。这就使得WP插件中的规则变得多余了。
如果只希望在存在查询字符串(任何查询字符串)时重定向,则将RewriteCond指令更改为:
RewriteCond %{QUERY_STRING} .即。它匹配查询字符串中的一个字符,因此请求的URL上有一个查询字符串。
https://stackoverflow.com/questions/64357407
复制相似问题