这是我第一次发帖,我非常感谢你的帮助。
我想将子域重定向到文件夹并将其重写为查询字符串(内部 - 不更改浏览器地址),但也保留查询字符串的余额(如果有)
这应该使用 Apache mod_rewrite。
来完成它还应该排除基本域和www扩展名(因为它指向根目录)。
我已经完成了DNS(通配符设置)和vhosts所需的一切,并且不需要mod_proxy方法
以下是我希望它如何运作。
www.mysite.com到根目录 mysite.com到根目录
user1.mysite.com转到app目录并查询字符串以追加user = user1(不更改浏览器地址)
例如 -
user1.mysite.com should resolve (internally) to mysite.com/myApp/index.php?user=user1
user2.mysite.com should resolve (internally) to mysite.com/myApp/index.php?user=user2
user1.mysite.com/mypage.php should resolve (internally) to mysite.com/myApp/mypage.php?user=user1
user1.mysite.com/mypage.php?myval=whateverval should resolve (internally) to mysite.com/myApp/mypage.php?user=user1&?myval=whateverval
我现有的代码如下,但不能隐式工作(浏览器地址栏更改)。有人可以帮助我吗?
谢谢, Sheran
答案 0 :(得分:0)
如果您不想使用mod_proxy,则需要将所有通配符子域指向与主域相同的文档根目录。您可以在ServerAlias *.mysite.com
的vhost设置中使用www.mysite.com
执行此操作。然后在文档根目录中的htaccess文件中:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(.+)\.mysite\.com$ [NC]
RewriteRule ^(mypage\.php)?$ /myApp/index.php?user=%1 [L,QSA]