首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从WordPress文件中添加带有正则表达式的.htaccess站点重定向

从WordPress文件中添加带有正则表达式的.htaccess站点重定向
EN

Stack Overflow用户
提问于 2020-10-14 16:11:20
回答 1查看 183关注 0票数 1

我想从WordPress文件中添加.htaccess站点上的重定向

当前URL:

代码语言:javascript
复制
example.com/papaya-exfoliator/?uf

它将被重定向到

代码语言:javascript
复制
example.com/produit/papaya-exfoliator/

目前,“全在一重定向”插件已经安装完毕,没有正则表达式就能正常工作。

就像我点击example.com/papaya-exfoliator,那么它将重定向到example.com/produit/papaya-exfoliator/,但是如果URL中有任何额外的数据,比如/?uf,那么重定向就无法工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-14 16:43:26

您可以在.htaccess文件的顶部执行如下操作,以便从/papaya-exfoliator/?uf重定向到/produit/papaya-exfoliator/

代码语言:javascript
复制
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指令更改为:

代码语言:javascript
复制
RewriteCond %{QUERY_STRING} .

即。它匹配查询字符串中的一个字符,因此请求的URL上有一个查询字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64357407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档