Apache 301重定向,同时保留URL的部分内容
是否可以编写301 Apache重定向并保留URL的一部分 例如,我有一些页面的标题中包含-md,并希望将它们重定向到相同的URL,而不带尾随-md。我希望保留test-page-1和test-page-2部分,但我不确定如何编写重写规则来实现这一点 /医生/test-page-1-md-->/pages/test-page-1 /医生/test-page-2-md-->/pages-test-page-2Apache 301重定向,同时保留URL的部分内容,apache,redirect,mod-rewrite,Apache,Redirect,Mod Rewrite,是否可以编写301 Apache重定向并保留URL的一部分 例如,我有一些页面的标题中包含-md,并希望将它们重定向到相同的URL,而不带尾随-md。我希望保留test-page-1和test-page-2部分,但我不确定如何编写重写规则来实现这一点 /医生/test-page-1-md-->/pages/test-page-1 /医生/test-page-2-md-->/pages-test-page-2 如何编写重写规则,在/doctors之后查找/test-page-1-md 如何保存te
RewriteRule ^doctors/$1-md /doctors/$1
这是:
重写规则模式替换[标志]
模式是与perl兼容的正则表达式。重写规则的替换是替换模式匹配的原始URL路径的字符串。所以,为了在替换中使用$1
变量,首先需要在模式中匹配它:
(以上内容应在.htaccess中使用;如果在VirtualHost配置中使用它,则必须以前导的
/
启动模式,因此:^/doctors/(.+)-md
)。一旦您确定一切正常,您也可以将302更改为301。谢谢Dusan!看起来很棒!所以对于像这样的apache重定向,我们可以使用任何与perl兼容的正则表达式,服务器会理解它吗?
RewriteEngine on
RewriteRule ^doctors/(.+)-md /pages/$1 [R=302]