在我们的登台服务器上,有不同版本的PHP应用程序。每个版本位于不同的文件夹中,以便PM可以逐个功能批准。结构如下所示:
- docroot
- origin
- develop
- origin
- feature
- feature_1
URL如下所示:
- http://dev.example.com/project/origin/develop
- http://dev.example.com/project/origin/feature/feature_1/
本地开发如下:
http://project.local/
现在我想重写URL。
http://project.local/foo/example1/example2
应移至
http://project.local/bar/example1/example2
我尝试了以下操作:
RewriteCond %{REQUEST_URI} foo/(.*)
RewriteRule ^foo/(.*)?$ /bar/$1 [R=302,L]
在本地环境下可以正常工作。
在登台服务器上,它从以下位置重定向:
http://dev.example.com/project/origin/develop/foo/example1/example2
收件人:
http://dev.example.com/bar/example1/example2
不起作用。 有没有办法在本地和暂存环境中处理此问题?
答案 0 :(得分:1)
问题是,在登台服务器上,您将此规则保留在/project/origin/develop
内的.htaccess中,而不是站点根.htaccess中。
您可以使用在两个地方都可以使用的通用规则:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/(.*/)?foo/(.*)$ [NC]
RewriteRule ^ /%1bar/%2 [R=301,L,NE]