是否可以编写301 Apache重定向并保留一部分URL?
例如,我有一些页面的标题中包含-md,并且希望将它们重定向到相同的URL,而无需结尾-md。我想保留test-page-1和test-page-2部分,但是我不确定如何编写重写规则来实现这一点。
/ doctors / test-page-1-md ---> / pages / test-page-1 / doctors / test-page-2-md ---> / pages-test-page-2
我如何编写重写规则以在/ doctors之后查找/ test-page-1-md?
我如何保留test-page-1和test-page-2部分?
我一直在着手这项工作,但似乎运气并不好。我认为我的问题出在$ 1变量上。
RewriteRule ^doctors/$1-md /doctors/$1
答案 0 :(得分:0)
RewriteRule 模式 替换 [标志]
Pattern是与Perl兼容的正则表达式。重写规则的替换是替换由Pattern匹配的原始URL路径的字符串。因此,为了在 Substitution 中使用$1
变量,您首先需要在 Pattern 中匹配它:
RewriteEngine on
RewriteRule ^doctors/(.+)-md /pages/$1 [R=302]
(以上内容应在.htaccess中起作用;如果在VirtualHost配置中使用它,则必须以前导/
开始模式,因此:^/doctors/(.+)-md
)。确定一切正常后,您也可以将302更改为301。