非常简单,但对我来说情况非常混乱。我在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]
但没有任何效果:(
谢谢!
你的 uri 模式^test/myname/$
匹配时 uri 正好/test/myname/
它不匹配/test/myname/12389...
,像这样修改你的规则:
RewriteEngine On
RewriteRule ^test/myname/([0-9]+)/?$ /myname/$1 [L,R=301]
我发现动态部分是字母和数字,所以我修改了代码:
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
谢谢