使用正则表达式将一个或多个 URL 重定向到一个 URL

使用正则表达式将一个或多个 URL 重定向到一个 URL

在我的网站中,有一些可以通过两个 URL 访问的页面:

  • .../页
  • .../参数/页面

为了针对搜索引擎优化网站,我必须将所有 .../page url 重定向到 .../parameter/page url。

我怎样才能修改文件 .htaccess?

答案1

为了使重定向按照所需的行为执行,请实施类似于下面的重写规则:

RewriteEngine On
RewriteCond %{REQUEST_URI} !(/(special|cases|which|should|be|excluded)/) [NC]
RewriteRule /(.*) http://www.example.com/parameter/$1 [L,R=301]

针对上述更具体的问题的解决方案评论(即,重定向所有没有特定上下文的页面以使用“en”上下文)将类似于以下重写:

RewriteEngine On
RewriteCond %{REQUEST_URI} !(/(en|it|de|fr)/) [NC]
RewriteRule /(.*) http://www.example.com/en/$1 [L,R=301]

请注意,重写规则不应适用的任何其他语言目录都需要添加到 RewriteCond 中的转义子句中。

此外,一旦实施完毕,需要在 Apache 上发出一个优雅的命令才能接收更改。

相关内容