使用 htaccess 重写,我希望我的网址 http://*.phoneataxi.com/(其中 * 是通配符,不包括“www”)按原样显示在地址栏中,但从 http://*.phoneataxi 获取信息。 com/test.php?c=*.
我尝试了很多不同的东西,但没有什么能完全满足我的需要。大多数示例将子域重定向到地址栏中的“/test.php”文件,我不想这样做。
我试图不必在我的 webroot 中创建单独的子域和子域文件夹。
想法?
使用 htaccess 重写,我希望我的网址 http://*.phoneataxi.com/(其中 * 是通配符,不包括“www”)按原样显示在地址栏中,但从 http://*.phoneataxi 获取信息。 com/test.php?c=*.
我尝试了很多不同的东西,但没有什么能完全满足我的需要。大多数示例将子域重定向到地址栏中的“/test.php”文件,我不想这样做。
我试图不必在我的 webroot 中创建单独的子域和子域文件夹。
想法?
我使用这个htaccess
文件让 Apache 充当另一个主机的代理:
IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^ghost\.pileborg\.se$
RewriteRule (.*) http://vps.pileborg.se/ghost/$1 [P]
</IfModule>
它会导致对http://ghost.pileborg.se/的所有访问被“重定向”到http://vps.pileborg.se/ghost/。
关于这个主题的一些答案非常古老,不再按预期工作。
在搜索了几个小时真正有效的东西之后,这就是我想出的;编辑你认为合适的:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ([a-z0-9]+)\.
RewriteRule ^(.*)$ - [E=BASE:%1]
RewriteCond %{DOCUMENT_ROOT}/%{ENV:BASE}/index.php -f
RewriteRule ^(.*)$ %{ENV:BASE}/index.php [L,NC,QSA]
RewriteCond %{DOCUMENT_ROOT}/%{ENV:BASE}/index.html -f
RewriteRule ^(.*)$ %{ENV:BASE}/index.html [L,NC,QSA]
确保rewrite
在您的主机上安装并启用了该模块
rewrite
引擎并设置路径基础这里使用的标志在这里进行了解释,但上面使用的标志非常简单:
[L]
最后一条规则,其余的忽略[NC]
没有大小写,没有大写/小写限制[QSA]
我记得这是“查询字符串附加”:D