htaccess - 子目录中的 .htaccess 不继承根目录中的 .htaccess

htaccess - 子目录中的 .htaccess 不继承根目录中的 .htaccess

我有 2 个 .htaccess 文件

首先在/public_html/

#ErrorDocument 404 https://example.com/en/404.php
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://example.com/$1 [R,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !/ws/
RewriteCond %{REQUEST_URI} !/en/
RewriteCond %{REQUEST_URI} !/ar/
RewriteCond %{QUERY_STRING} !lang=en
RewriteCond %{QUERY_STRING} !lang=ar
RewriteRule (.*) $1?lang=en [QSA]

另一个文件位于 /public_html/jobs/

RewriteOptions inherit
DirectoryIndex index.php
RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_URI} ((\d+)?)
RewriteRule ((\d+).*?)  /job/index.php?JobID=$2 [QSA]

我想重定向 URL 从:

https://example.com/jobs/123

到:

https://example.com/job/index.php?JobID=123&lang=en

但结果是

https://example.com/job/?JobID=1196147

没有 lang 参数

我不知道为什么它不起作用,我需要 2 个文件中的规则,因为根文件中还有许多其他规则

谢谢。

答案1

我刚刚遇到了同样的问题 - 我通过使用RewriteOptions InheritBefore而不是仅仅RewriteOptions Inherit在子目录中的 .htaccess 文件之前处理父目录中的 .htaccess 文件来解决它

相关内容