исключить подкаталог из правил htaccess в корневой папке

Я использую приведенные ниже правила htaccess в корневой папке моего сайта, чтобы удалить расширения файлов и добавить косую черту в конце. Однако я хотел бы исключить подкаталог / sub-dir / из правил htaccess для корневой папки. Я попытался добавить другой htaccess в папку / sub-dir / и поставил RewriteOptions inherit или же RewriteEngine Off в файле, но ни один из них не работает.

RewriteEngine On
RewriteBase /

# redirect from non-www to www
RewriteCond %{HTTP_HOST} ^mywebsite.com.au$ [NC]
RewriteRule ^(.*)$ http://www.mywebsite.com.au/$1 [R=301,L]

RewriteCond %{REQUEST_URI} ^/index.php$
RewriteRule ^(.*)index.php$ http://www.mywebsite.com.au/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} ^GET\ /[^?\s]+\.php
RewriteRule (.*)\.php$ /$1/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)/$ $1.php [L]

# Remove trailing slash:
RewriteRule (.*)/$ $1 [L]

# Now test without the trailing slash:
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule . %{REQUEST_FILENAME}.php [QSA,L]

Любое предложение высоко ценится.

Спасибо

1

Решение

Вы можете попробовать добавить файл htaccess в подкаталог, который имеет только этот:

RewriteEngine On
RewriteRule ^ - [L]

Без каких-либо вариантов наследования. Наследование означает, что вы хотите, чтобы правила в родительском htaccess также применялись вместе с любыми правилами в файле htaccess подкаталога. При этом вы убедитесь, что механизм перезаписи включен, и создаете правило «ничего не делать».

В противном случае вы можете добавить проход в верхнюю часть корневого файла htaccess (справа внизу). RewriteBase):

RewriteRule ^sub-dir/ - [L]
6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]