【问题标题】:htaccess files in sub foldershtaccess 子文件夹中的文件
【发布时间】:2014-01-04 19:46:21
【问题描述】:

我有一个文件夹结构如下的开发环境;

/server/project1

/server/project2

/服务器/根

在 /server 中,我有一个 htaccess 文件,它像这样将来自 dev.* 的所有内容重写到 /server/root;

<IfModule mod_rewrite.c>
   RewriteEngine on

   RewriteCond %{HTTP_HOST} ^dev [NC]
   RewriteRule ^(.*)$ root/$1 [L,QSA]

</IfModule>

这可行,但是当使用类似于 dev.local.com/project1 的 URL 时,如果 /server/project1 中存在具有重写规则的 htaccess,则会失败

我希望它忽略 /server/project1 中的 htaccess 文件并始终定向到 /root 我该怎么做?

【问题讨论】:

    标签: apache .htaccess mod-rewrite


    【解决方案1】:

    如果您在子目录中有规则,则这些规则将始终优先于父目录中的规则。在 apache 2.2 中,您可以做的最好的事情是使用 RewriteOptions 从父目录继承规则子目录中的规则之后:

    RewriteOptions inherit
    

    不确定这是否会有所帮助,具体取决于您使用的规则。

    在 apache 2.4 中,RewriteOptions 指令有更多选项。您现在可以使用“InheritBefore”选项将规则粘贴在父目录中当前子目录中的规则之前。

    您唯一的其他选择是设置您的虚拟主机,使dev 位于其自己的虚拟主机中,文档根位于/root/

    【讨论】:

    • 我希望规则向下级联而不是向上级联,如果我不想修改“子文件夹”中的所有 htaccess 文件是 vhost 的唯一方法吗?
    • @Alex 这可能是最直接的方法。
    猜你喜欢
    • 2012-09-14
    • 1970-01-01
    • 2014-06-23
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    相关资源
    最近更新 更多