重定向但不显示URL重定向:: htaccess?

时间:2012-09-12 15:31:12

标签: .htaccess redirect

我需要将一些用户重定向到一个子域,但我不希望他们知道他们在子域中。他们应该认为他们属于主要领域。 我相信这可以通过htaccess完成,但对我来说是胡言乱语。

有人可以给我一些骨头吗?

1 个答案:

答案 0 :(得分:1)

在不重定向浏览器的情况下提供来自不同域的内容(从而更改地址栏中的URL)时,需要执行以下两项操作之一。要么是其他域的文件路径分辨率,要么必须设置reverse proxy(如果加载了mod_proxy,这很容易做到)。

看起来您的子域位于主域的文档根目录中,这意味着此选项可行。因此,如果您愿意,当有人将此网址放在地址栏http://domain.com/page中时,他们会在http://sub.domain.com/another-page中获得内容,您只需将这些规则添加到htaccess的顶部即可文件位于主域(public_html)的文档根目录中:

RewriteEngine On
RewriteRule ^page(.*)$ /subdomain_folder/another-page$1 [L]

否则,第二个选项是使用mod_proxy:

RewriteEngine On
RewriteRule ^page(.*)$ http://sub.domain.com/another-page$1 [L,P]

编辑:

  

我想将一些用户重定向到另一个子域,具体取决于他们的ip(地理位置)。是的,public_html是根

您可以通过%{REMOTE_ADDR}变量检查IP:

RewriteCond %{REMOTE_ADDR} ^123\.45\.67\.89$
RewriteCond !^/subdomain_folder
RewriteRule ^(.*)$ /subdomain_folder/$1 [L]