是否可以使用.htaccess为子域指向主域上的文件? 我将example.com作为主域并通过DirectAdmin创建了子域:one.example.com,two.example.com等。子域应该指向主域上的app.php,但是子域应该保留在url中。
因此导航到one.example.com应指向app.php,该app.php位于主域example.com中,但网址仍应显示one.example.com
我已经查看并尝试了.htaccess rewrite subdomain to directory和其他地方发现的大量重写规则。 目前我在子域的子文件夹中的.htaccess文件中有这个重写规则:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.example\.com
RewriteRule ^(.*)$ http://example.com/app.php$1 [L,NC,QSA]
这会重定向并将网址更改为example.com/app.php,而我希望网址显示子网域:one.example.com/whatever
是否可以使用.htaccess执行此操作,或者甚至可能有更好的方法来执行此操作?
答案 0 :(得分:0)
在另一台服务器上有目标的RewriteRule
将始终执行重定向
绝对网址
如果指定了绝对URL,mod_rewrite 将检查主机名是否与当前主机匹配。如果是,则删除方案和主机名,并将生成的路径视为URL路径。 否则,将对给定的网址执行外部重定向。要强制外部重定向回到当前主机,请参阅下面的[R]标志。
要将网址http://example.com/app.php
映射到您的子域名而不重定向,您可以尝试P|proxy
标记
RewriteRule ^(.*)$ http://example.com/app.php/$1 [P,QSA]
还记住最后一点
注意:必须启用mod_proxy才能使用此标志。
通常,这可以通过
来完成a2enmod proxy proxy_http
如果目标网址为https://...
,您还必须启用mod_proxy_connect,并使用SSLProxyEngine
SSLProxyEngine on
根据您的需要,ProxyPass
也可能是一个可行的解决方案。