我有一个域和一个子域(用于移动和客户端)的共享主机。每个域和子域都有不同的默认索引页。托管公司告诉我把所有内容放在我的.htaccess文件中,因为我无法访问httpd.conf。
我想做的是:
DirectoryIndex
应为:index.html
DirectoryIndex
应为:mobile-index.html
DirectoryIndex
应为:post.php
DirectoryIndex
应为:vote.php
编辑:
另外,如果我转到domain1.com/page/,DirectoryIndex
应该是:index.html
。如果我访问mobile.domain1.com/page/,DirectoryIndex
应该是:mobile-index.html
我可以在.htaccess文件中添加什么来更改每个子域的DirectoryIndex
?
非常感谢你
答案 0 :(得分:18)
<IfDefine>
不起作用。 <IfDefine>
仅在apache启动时运行。你应该使用mod_rewrite解决方案。查看@tzakrajs回答。
您可以在.htaccess文件中使用它:
SetEnvIf Host ^www\. page=www
SetEnvIf Host ^mobile\. page=mobile
rewriterule ^.*$ test.php?subdomain=%{ENV:page} [QSA,L]
只需使用SetEnvIf
配置所有子域,然后让PHP发挥其魔力。
答案 1 :(得分:2)
试试这个:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^domain1.com$
RewriteRule ^.*/$ index.html [R=302,L]
RewriteCond %{HTTP_HOST} ^mobile.domain1.com$
RewriteRule ^.*/$ mobile-index.html [R=302,L]
RewriteCond %{HTTP_HOST} ^post.domain1.com$
RewriteRule ^.*/$ post.php [R=302,L]
RewriteCond %{HTTP_HOST} ^vote.domain1.com$
RewriteRule ^.*/$ vote.php [R=302,L]
答案 2 :(得分:-1)
您可以像这样使用oyur .htaccess
文件进行设置:
RewriteCond %{HTTP_HOST} ^(www\.)?domain.com$ [NC]
RewriteRule DirectoryIndex index.html
RewriteCond %{HTTP_HOST} ^mobile.domain.com$ [NC]
RewriteRule DirectoryIndex mobile-index.html
...