如果url在更改的URL上包含单词,则htaccess重定向

时间:2014-04-29 06:52:57

标签: .htaccess url mod-rewrite redirect url-rewriting

如果我的网址会这样:

http://id.factor.ua/bez-rubriki/checkout/?price=...

并且网址将包含 bez-rubriki

我如何使用.htaccess重定向到此网址但没有此slug,如下一个网址:

http://id.factor.ua/checkout/?price=...

1 个答案:

答案 0 :(得分:1)

对于内部重写,这很简单:

RewriteEngine on
RewriteRule ^bez-rubriki/checkout/$ /checkout/ [L,QSA]

对于外部重定向,添加R标志:

RewriteEngine on
RewriteRule ^bez-rubriki/checkout/$ /checkout/ [R=301,L,QSA]

以上是.htaccess样式文件中使用的版本。

一般说明:如果您可以控制http服务器配置,那么您应该始终更喜欢将此类规则放在主机配置中,而不是使用.htaccess样式文件。这些文件非常容易出错,使事情变得复杂,难以调试并且确实使服务器速度变慢。只有在http服务器配置的 no 控件或某些应用程序需要动态更改配置时才应使用它们。

因此,如果您想将这些规则放在主机配置中,则需要进行少量修改。您必须在测试请求路径的正则表达式中包含前导斜杠(/):

RewriteEngine on
RewriteRule ^/bez-rubriki/checkout/$ /checkout/ [L,QSA]

进行外部重定向的版本:

RewriteEngine on
RewriteRule ^/bez-rubriki/checkout/$ /checkout/ [R=301,L,QSA]