【问题标题】:Redirect content to another domain; specific folders - htaccess将内容重定向到另一个域;特定文件夹 - htaccess
【发布时间】:2013-10-31 04:09:06
【问题描述】:

我是 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 的工作原理,但是我似乎无法理解这一点。

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

【问题讨论】:

    标签: apache .htaccess mod-rewrite


    【解决方案1】:

    您的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,从而改变浏览器地址栏中的内容。您还使用了“rewrite”这个词,这不是一回事。重写完全发生在服务器端,更改 URI 而不告诉浏览器它已被更改。当服务器不同时,您不能进行这种重写。您可以在这里做的最好的事情是通过将规则中的R 标志更改为P 来进行反向代理。这需要您加载 mod_proxy。

    【讨论】:

    • 谢谢乔恩;看起来供应商可能错误地引导了我们:) 你的解释对我来说很有意义;感谢您的简单解释!您能否告诉我 URL 末尾是否有查询字符串,如果它也被保留,例如:myserver.com/World/environment/pages/pageX.html?id=australia
    • 明白了!再次感谢您的帮助:)
    猜你喜欢
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    相关资源
    最近更新 更多