我有一个域和一个子域(用于移动设备和客户端)的共享主机。每个域和子域都有不同的默认索引页。托管公司告诉我将所有内容都放入.htaccess文件中,因为我无权访问httpd.conf。

我想做的是这样的:

  • 如果用户访问domain1.com,则DirectoryIndex应为:index.html
  • 如果用户转到mobile.domain1.com,则DirectoryIndex应为:mobile-index.html
  • 如果用户转到post.domain1.com,则DirectoryIndex应为:post.php
  • 如果用户要投票,则DirectoryIndex应为:vote.php

  • 编辑:
    另外,如果我转到domain1.com/page/,则DirectoryIndex应该为:index.html。如果我转到mobile.domain1.com/page/,则DirectoryIndex应该为:mobile-index.html
    为了更改每个子域的DirectoryIndex,我可以在.htaccess文件中放入哪些内容?

    非常感谢你

    最佳答案

    <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发挥作用即可。

    关于apache - 根据.htaccess中的域/子域更改DirectoryIndex,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7269685/

    10-11 07:45