htaccess如果给定目录,则停止处理

k1r*_*r0s 2 php apache .htaccess mod-rewrite

我在htdocs文件夹中有一个安装文件,需要重新编写脚本,如下所示:

RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ 
RewriteCond %{REQUEST_URI} !^/admin? 
RewriteCond %{REQUEST_URI} !^/payment? 
RewriteRule ^(.*)$ %1/$1 [QSA]

RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
RewriteRule ^admin/(.*)?$ BACKEND-PHP/$1?domain=%1 [QSA]

RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
RewriteRule ^payment/(.*)?$ PAYPAL-API/$1?domain=%1 [QSA]
Run Code Online (Sandbox Code Playgroud)

但是现在,要测试joomla,我需要在htaccess文件中添加一些规则,如果给定目录为“ localhost / joomla ”,则该规则将停止处理规则,以使joomla正常运行。

在伪代码中将是这样的:

RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} ^$

**RewriteCond %{HTTP_HOST} ^(localhost)$ 
**RewriteRule ^/joomla$ [END]

# (if the requested file is at joomla directory 
# htaccess will stop processing)

RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ 
RewriteCond %{REQUEST_URI} !^/admin? 
RewriteCond %{REQUEST_URI} !^/payment? 
RewriteRule ^(.*)$ %1/$1 [QSA]

RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
RewriteRule ^admin/(.*)?$ BACKEND-PHP/$1?domain=%1 [QSA]

RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
RewriteRule ^payment/(.*)?$ PAYPAL-API/$1?domain=%1 [QSA]
Run Code Online (Sandbox Code Playgroud)

Rav*_*yal 5

你近了 只需修改您的规则即可

RewriteCond %{HTTP_HOST} ^localhost$ [NC]
RewriteRule ^joomla(/.*)?$ - [END]
Run Code Online (Sandbox Code Playgroud)

-说我们做这个URL任何处理。该[End]标志可防止触发以下所有规则。