Исключить папку / каталог из RewriteRule
У меня довольно стандартный WordPress .htaccess со следующим URL переписывает
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
WordPress установлен в моем корневом домене. У меня есть некоторые другие скрипты в подпапках, например /opencart эти подпапки содержат свои собственные.htaccess файлы.
к сожалению, кажется, что WordPress захватывает перезаписи для некоторых из этих скриптов иногда.
Как я могу попросить mod_rewrite игнорировать правила WordPress для перезаписи при столкновении с конкретными подпапки, например opencart и использовать правила, определенные в.htaccess в этих подпапках вместо этого?
3 ответов
вы можете попробовать заменить полный набор правил WP следующим:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
# Include in the next line all folders to exclude
RewriteCond %{REQUEST_URI} !(folder1|folder2|folder3) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
в рамках .htaccess файл в корне вашего сайта, добавьте следующее выше WordPress .директивы htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/subdirectoryname1/(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^/subdirectoryname2/(.*)$ [OR]
RewriteRule ^.*$ - [L]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^/(folder1)/(.*) /folder1/ [R]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L,R]
</IfModule>
# END WordPress