我需要将一些用户重定向到一个子域,但我不希望他们知道他们在子域中。他们应该认为他们属于主要领域。 我相信这可以通过htaccess完成,但对我来说是胡言乱语。
有人可以给我一些骨头吗?
答案 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]