排除来自重写规则的文件夹/目录(Exclude a folder/directory from Re

2019-07-21 05:40发布

我有一个非常标准的WordPress使用下列URL重写的.htaccess

# 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时与特定的子文件夹如Opencart的遭遇忽视的WordPress规则重写,并使用这些子文件夹内,而不是在.htaccess中定义的规则?

Answer 1:

您可以尝试更换整个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 


Answer 2:

在站点根.htaccess文件,添加上述的WordPress的.htaccess指令如下:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/subdirectoryname1/(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^/subdirectoryname2/(.*)$ [OR]
RewriteRule ^.*$ - [L]
</IfModule>


Answer 3:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

RewriteRule ^/(folder1)/(.*) /folder1/$2 [R]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L,R]

</IfModule>

# END WordPress


文章来源: Exclude a folder/directory from RewriteRule