子目录中 .htaccess 中的 RewriteRules 禁用/破坏父目录中 .htaccess 中的 RewriteRules

子目录中 .htaccess 中的 RewriteRules 禁用/破坏父目录中 .htaccess 中的 RewriteRules

这是与 HostGator 共享的托管帐户。

我有两个.htaccess文件。

一个位于文档根目录中:~/public_html/.htaccess

# this is ~/public_html/.htaccess
## Redirect to https:// ##
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://%{HTTP_HOST}/~myusername/$1 [R=301,L]

另一个位于子目录中: 。可以找到~/public_html/software/drupal-7.0/.htaccess此文件的内容.htaccess在 Drupal git 中

.htaccessWeb 根目录中的功能是将所有请求重定向到https://。当我访问除 提供的 URL 之外的任何 URL 时,此功能均有效~/public_html/software/drupal-7.0/

我希望我的重定向也https://能正常工作,而无需修改此目录中的文件。~/public_html/software/drupal-7.0/.htaccess

移动到~/public_html/software/drupal-7.0/.htaccess其他地方似乎可以实现https://重定向。

请问,为什么我的重定向没有出现在由 提供的 URL 中~/public_html/software/drupal-7.0/

答案1

RewriteOptions Inherit在子目录的.htaccess文件中会导致评估子目录中的规则,然后评估父上下文中的规则。

如果 Drupal 规则做出了任何更改,由于这是每个目录的上下文,它们将通过该过程第二次发送回去,并且在第二次传递时规范主机名重写将生效。

相关内容