非常简单,但对我来说非常困惑。我在wordpress上有一个插件,可以在链接中生成动态结果
www.mywebsite.com/testing/myname/1239812398123
我想用301将其更改为:
www.mywebsite.com/myname/1239812398123
请记住,/ 1239812398123将动态生成,因此总是不同。
我已经尝试过:
Redirect 301 /test/ /www.mywebsite.com/myname/
或
RewriteEngine On
RewriteRule ^test/myname/$ /myname/? [L,R=301]
但没有任何作用:(
谢谢!
答案 0 :(得分:1)
当uri完全^test/myname/$
它与/test/myname/
匹配时,您的uri模式/test/myname/12389...
匹配,修改您的规则如下:
RewriteEngine On
RewriteRule ^test/myname/([0-9]+)/?$ /myname/$1 [L,R=301]
答案 1 :(得分:0)
好的,我发现动态部分是字母和数字,所以我修改了代码:
RewriteEngine On RewriteRule ^ testing / myname /([a-z0-9] +)/ myname / $ 1 [L,R = 301]
它有效,但我也发现这会从插件中抛出一条错误信息 - 这条路径不存在。
是否可以仅更改主要部分,但如果有动态部分 - 不要做任何事情
所以情况如此:
如果有人进入主要部分www.mywebsite.com/testing/myname/
,则重写为www.mywebsite.com/myname/
但如果有人进入动态部分www.mywebsite.com/testing/myname/123lkj123
,则不会触发重写,因此它将保持不变www.mywebsite.com/testing/myname/123lkj123
由于
答案 2 :(得分:0)
我需要重写完全匹配,我尝试了zilions选项。不能想出来:(