2017-02-09 52 views
0

我有一个.htaccess文件:.htaccess:如何在url匹配时绕过所有规则?

SetEnv PHP_VER 5_TEST 
RewriteEngine On 

#RewriteCond %{HTTPS} off 
#RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

RewriteCond %{HTTPS} off 
RewriteCond %{THE_REQUEST} !/pay|ok|ko|retour/ [NC] 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

RewriteCond %{HTTP_HOST} !^(blog|www|flashgames).sample.com$ 
RewriteRule ^(.*) http://www.sample.com/$1 [QSA,L,R=301] 

ErrorDocument 404 https://www.sample.com/index.php 

我想在begib

添加规则时,网址为:http://www.sample.com/test.php然后返回(什么都不做),只是绕过所有规则。

有什么想法?

回答

3

可以使用破折号-作为替代RewriteRule

- (破折号)
破折号表示没有取代应当执行(现有的路径是通过原封不动传递)。当需要在不改变路径的情况下应用标志(见下文)时使用这个标志。

使用L|last标志,它将跳过以下所有规则。这意味着,当你在一开始

RewriteRule ^test\.php$ - [L] 

插入一个规则,它只会处理test.php,仿佛没有规则可言。

当您在中间某处插入此规则时,Apache将处理所有规则,直至此时退出规则链。