【问题标题】:htaccess - How are htaccess files applied to subdirectories?htaccess - htaccess 文件如何应用于子目录?
【发布时间】:2011-10-14 11:15:57
【问题描述】:

我有一个重写规则:

RewriteRule ^Catalog/Custom_Pages/([^\.]+)\.html$  http://www.domain.com/New/Catalog/Custom_Pages/Custom_Pages_Main.php?cp=$1 [R]

目录结构为 domain.com/New/Catalog/

如果我在 RewriteRule 前面省略了“目录”,则不会重写 URL。 htaccess 文件位于“新建”目录中。那么“新建”的 htaccess 是否仅适用于其子目录,还是应该适用于所有子目录,以便可以省略“目录”?这可能是服务器设置吗?

【问题讨论】:

  • 你应该给出你想要的url和你不想要的url的例子

标签: .htaccess


【解决方案1】:

如果 .htaccess 文件位于 /New/ 文件夹中,则它将应用于此文件夹和所有子文件夹,但 RewriteRule 指令中的所有 URL 路径将 相对/New/ 文件夹。

如果您想从 RewriteRule 模式中省略 Catalog/ 部分,请尝试以下规则:

RewriteRule Custom_Pages/([^\.]+)\.html$  http://www.domain.com/New/Catalog/Custom_Pages/Custom_Pages_Main.php?cp=$1 [R]

您当前的模式清楚地表明“URL 应该以目录开头”(查看正则表达式手册 ^ 的含义)。

然后可以将上述规则应用于Catalog/Custom_Pages/something.html 以及Pink-Kitten/Custom_Pages/something.html

【讨论】:

  • 好的,是胡萝卜造成的。因此,carot 之前的所有内容都是 htaccess 所在的基本目录。这就说得通了。谢谢。
【解决方案2】:

模式将从目录中匹配到页面的url,例如:

http://www.domain.com/New/Catalog/Custom_Pages/test.html

从目录 /New 到页面的路径是:

Catalog/Custom_Pages/test.html

如果正则表达式模式匹配Catalog/Custom_Pages/test.html,则将应用该规则,否则将不应用它。

ps : 如果CatalogCustom_Pages 中有.htaccess,他们的规则将首先被测试。

【讨论】:

    猜你喜欢
    • 2019-04-01
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 2021-03-14
    • 1970-01-01
    相关资源
    最近更新 更多