1

我是 htaccess 的新手,希望你能帮忙。

供应商在 htaccess 文件中给了我这个:

Condition %{HTTP_HOST}    ^/World/environment/
RewriteRule http://world.environment.net/$1

当我想着运行它时,不会发生重定向。

我希望做的是重写一个页面

http://myserver.com/World/environment/pages/pageX.html 

在我的服务器上:

http://world.environment.net/pages/pageX.html

我一直在阅读很多 htaccess 的工作原理,但是我似乎无法理解这一点。

有人可以帮助这个女孩吗?

4

1 回答 1

0

Condition应该是RewriteCond%{HTTP_HOST}变量永远不会匹配^/World/environment/。Host 请求标头只包含一件事,即请求所针对的主机名。Host 字段中没有路径信息。其次,您的重写规则需要一个模式,条件中的内容应该在规则中。你想要这样的东西:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^myserver\.com$ [NC]
RewriteRule ^/?World/environment/(.*)$ http://world.environment.net/$1 [L,R]

这是一个重定向,这意味着告诉浏览器加载新的 URL,从而改变浏览器位置栏中的内容。您还使用了“重写”这个词,这不是一回事。重写完全发生在服务器端,更改 URI 而不告诉浏览器它已被更改。当服务器不同时,您不能进行这种重写。您可以在这里做的最好的事情是通过将R规则中的标志更改为P. 这需要您加载 mod_proxy。

于 2013-10-31T04:39:07.307 回答