我需要您关于重定向规则的帮助。
我有一个旧的网址结构:
www.example.com/en/news/news/single/article/SPECIFIC-ARTICLE/
(SPECIFIC-ARTICLE是一大堆文章的占位符 - 带有斜线!)。
重新启动后,文件夹的名称和结构将更改为:
www.example.com/en/news/SPECIFIC-ARTICLE
因此,旧结构中的所有文章(带尾随)都应重定向到新结构中的相应文章。并且不应该有一个尾随斜杠。
.htaccess
中的mod_rewrite规则应该如何?
如果在旧文章网址的末尾没有结尾斜杠但.html
,那么此规则将如何变更?
答案 0 :(得分:0)
在.htaccess
中使用mod_rewrite就像(在文件顶部附近):
RewriteEngine On
RewriteRule ^(en/news)/news/single/article/([\w-]+)/$ /$1/$2 [R=302,L]
$1
是对en/news
模式中RewriteRule
匹配的反向引用(这只是为了避免重复)。 $2
是 SPECIFIC-ARTICLE 的反向引用(假设它只包含字母A-Z
,a-z
,0-9
,{{ 1}}和_
)。
如果有-
而不是尾部斜杠,请将.html
模式更改为:
RewriteRule
请注意,点是反斜杠转义以匹配文字点而不是任何字符。
请注意,这是一个临时(302)重定向,只有当您确定它正常工作时,才将其更改为301(永久)重定向。