.htaccess用url masking重写

时间:2012-06-28 13:00:21

标签: .htaccess mod-rewrite

我需要重写url以维持以下条件:

  • http://domain.net(或http://www.domain.net)重写为http:// ip:port / folder
  • http://domain.net/logout?query=1之类的任何其他请求重定向到http:// ip:port / folder / logout?query = 1(保留查询字符串和所有内容)
  • 屏蔽重写,以便新手用户无法从浏览器网址栏中检测到ip(重定向到的地址)
  • 至于屏蔽,http:// domain.net:port/folder这样的可见重定向也是可以接受的。

到目前为止我尝试过:以下结果导致500错误。

RewriteCond %{HTTP_HOST} ^(*.)?domain\.net$
RewriteRule ^(/)?$ http:// ip:port/folder/$1 [L,R,QSA]

以下工作没有屏蔽:

RewriteCond %{HTTP_HOST}   !^www\.domain\.net [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/(.*)         http:// ip:port/folder/$1 [L,R,QSA]

1 个答案:

答案 0 :(得分:1)

仅当ip:portdomain.net引用同一服务器时,才能执行此操作。 否则,如果要隐藏ip:port,则必须使用一些脚本将domain.net的远程内容从ip:port提取到[P]

否则,您可以使用{{1}}标志将请求代理到其他服务器 请参阅:http://httpd.apache.org/docs/current/rewrite/flags.html#flag_p