使用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]
答案 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 以进行临时重定向。