我在root中有几个php文件
domain.com/dog.php
domain.com/cat.php
...
当用户访问dog.domain.com时,我需要显示domain.com/dog.php但请将dog.domain.com保留在浏览器网址中
我已经有了这个.htaccess:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*).domain.com$
RewriteRule .* http://domain.com/%1.php [L]
当我输入dog.domain.com时它工作正常并显示domain.com/dog.php内容,但现在它将浏览器中的URL更改为domain.com/dog.php
如何解决?
P.S。通配符DNS记录已打开(已捕获所有子域* .domain.com)
答案 0 :(得分:0)
如果* .domain.com在同一个vhost中定义,则必须在那里使用相对的RewriteRule:RewriteRule ^.*$ /%1.php [L]
)。如果没有,则必须将[L]
替换为[P]
,并确保已加载mod_proxy。见https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html
最后但同样重要的是,您可能希望将RewriteCond
更新为不区分大小写:RewriteCond %{HTTP_HOST} ^(.*).domain.com$ [NC]