同一应用程序可以有多个.htaccess文件吗?

时间:2018-09-06 07:05:54

标签: php .htaccess dns document-root

我有两个域具有相同的文档根目录。根据要求,我希望两个域都应具有自己的.htaccess文件。他们与我可以实现这一目标的任何方式吗?

2 个答案:

答案 0 :(得分:2)

下面的示例包含两个域,我们必须根据该域选择查询参数。

RewriteCond %{HTTP_HOST} ^www\.site1\.example [NC] 
RewriteRule ^(.*)$ index.php?domainname=site1 [NC,QSA] 
RewriteCond %{HTTP_HOST} ^www\.site2\.example [NC] 
RewriteRule ^(.*)$ index.php?domainname=site2 [NC,QSA] 

但是在同一文件夹中不能添加多个.htaccess文件。

答案 1 :(得分:0)

除了常见的RewriteCond遮罩外,还有更多选择。特别是,如果您需要的不仅仅是mod_rewrite指令,则可以使用:

  • 每个虚拟主机一个AcesssFilename

    <VirtualHost *:80>
       AccessFileName .htaccess2
    
  • 或者只是一个<If> section来拆分一个.htaccess:

    <If "%{HTTP_HOST} =~ 'www2'">
       Include .htaccess2
       # or a bunch of RewriteRules here
    </If>
    

对于核心指令,我也建议您在虚拟主机配置本身中进行设置。但是对于基本重定向,辅助.htaccess.domain2可能会这样做。