如何在 Apache 中重写 URL 路径以避免无限循环
How to rewrite URL paths in Apache to avoid infinite loop
我正在尝试在我的 VirtualHost 上设置一些重写规则。我尝试将根“/”重定向到特定路径“/mypath”。一个路径 '/foo' 到根 '/' 而不进入循环。
RewriteEngine On
RewriteCond %{HTTP_HOST}%{REQUEST_URI} =server.domain.com/foo
RewriteRule /foo / [R,E=DEV:true]
RewriteCond %{HTTP_HOST} =server.domain.com
RewriteCond %{ENV:DEV} !^true$
RewriteRule ^/$ /mypath [R]
我希望如果用户要求:
server.domain.com/foo
he/she 转到 server.domain.com
如果用户要求:
server.domain.com
he/she 转到 server.domain.com/mypath
正如您在我的代码中看到的那样,我设置了一个环境变量来检查是否必须重写,但它不起作用。
使用两个域解决了这个问题。
我们创造:
server.domain.com
和 server-aux.domain.com
重写规则如下:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^server-aux.domain.com$
RewriteRule ^(.*)$ https://server.domain.com/foo [R=301]
现在 server.domain.com
转到 /
,server-aux.domain.com
转到 /foo
我正在尝试在我的 VirtualHost 上设置一些重写规则。我尝试将根“/”重定向到特定路径“/mypath”。一个路径 '/foo' 到根 '/' 而不进入循环。
RewriteEngine On
RewriteCond %{HTTP_HOST}%{REQUEST_URI} =server.domain.com/foo
RewriteRule /foo / [R,E=DEV:true]
RewriteCond %{HTTP_HOST} =server.domain.com
RewriteCond %{ENV:DEV} !^true$
RewriteRule ^/$ /mypath [R]
我希望如果用户要求:
server.domain.com/foo
he/she 转到 server.domain.com
如果用户要求:
server.domain.com
he/she 转到 server.domain.com/mypath
正如您在我的代码中看到的那样,我设置了一个环境变量来检查是否必须重写,但它不起作用。
使用两个域解决了这个问题。
我们创造:
server.domain.com
和 server-aux.domain.com
重写规则如下:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^server-aux.domain.com$
RewriteRule ^(.*)$ https://server.domain.com/foo [R=301]
现在 server.domain.com
转到 /
,server-aux.domain.com
转到 /foo