使用htaccess

时间:2015-07-08 06:43:19

标签: php .htaccess redirect

使用htaccess

从一个路径重定向到另一个路径

我有一些这样的网址: -

https://www.example.com/au/path1

https://www.example.com/sg/path1

https://www.example.com/ca/path1 

还有更多,我想将这些网址重定向到这种类型: -

https://www.example.com/au/path2

https://www.example.com/sg/path2

https://www.example.com/ca/path2

但我没有得到理想的结果,这是我的代码: -

RewriteEngine On 
RewriteCond %{REQUEST_URI} path1
RewriteRule ^(.*)$ %{REQUEST_URI}/path2 [R=301,L]

2 个答案:

答案 0 :(得分:0)

您需要捕获请求uri的前缀并使用它来进行重定向。像这样:

RewriteRule ^(.*)/path1$ $1/path2 [R=301,L]

更新

如果您需要重定向的连续更改别名集,您可能需要查看RewriteMap。此模块允许您使用不同的外部源来提供重写的映射。

例如,您可以使用包含键值对的文本文件:

foo/bar /foo-new/bar
bar/foo /bar/foo-new

然后将重写规则与此地图结合使用:

RewriteMap examplemap "txt:/path/to/file/map.txt"
RewriteRule "^(.*)$" "${examplemap:$1}"

然后,只要地图需要更改,您就可以确保更新此文件(如果是Drupal)。 Apache将查看文件的修改时间,并在缓存已更改时刷新缓存。

您还可以使用外部应用程序或使用其他一些改进的资源。

答案 1 :(得分:0)

另一个重定向这些网址的解决方案是Apache mod_alias的重定向指令。

在你的root / .htaccess文件中试试这个:

margin-bottom: X

您可以将 RedirectPermanent 更改为 RedirectTemp 以进行临时重定向。