如何通过.htaccess
重定向所有url,使所有以-text/
结尾的url重定向到(url)/
,删除-text
部分
例如,所有url (word-text/
):
https://www.example.com/example-text/
https://www.example.com/example/
要删除url路径末尾(最后一个斜杠之前)的-text
,您可以在根.htaccess
文件的顶部(# BEGIN WordPress
部分之前)执行以下操作。
例如:
RewriteRule (.+)-text/$ /$1/ [R=302,L]
不需要其他指令(因为RewriteEngine On
指令在后面的WordPress代码块中)
$1
反向引用(在替换字符串中)包含url路径末尾-text/
之前的url路径。
这适用于任何以-text/
结尾的URL。如果它只应用于包含单个url路径段的url(如您的示例),那么您可以修改RewriteRule
模式,如下所示:
RewriteRule ^([^/]+)-text/$ /$1/ [R=302,L]
这将匹配/example-text/
(单路径段),但不匹配/foo/bar-text
(两个路径段)。
注意这些是302(临时)重定向。如果这是永久性的,那么将其更改为301,但只有在您测试了它的工作原理之后。默认情况下,301是由浏览器持久缓存的,因此可能会使测试出现问题。
-
这不是你的答案
-
但是我把这个答案放在这里,也许它会解决其他人的问题
function forward_to_url(){ $self = $_SERVER["REQUEST_URI"]; //The string you want to find $itemCheck = "url"; $needle = $itemCheck. '/'; //Any Address You want redirect $forwardlink = '/'.preg_replace('/'.strtolower($itemCheck).'/','',strtolower($self)); $length = strlen($needle); $urlend= substr($self, -$length); if ($urlend == $needle or $urlend == $itemCheck) { wp_redirect($forwardlink, 301); } } add_action('template_redirect', 'forward_to_url');