2014-10-08 109 views
1

我想在我的网站中隐藏.php扩展名,我有这个代码片段,它工作正常。然而,我有一个我想成为规则的例外的URL,那就是我希望它具有完整的.php,并且它是$ _GET params。mod_rewrite和.htaccess例外规则

如何将该异常包含到此代码段中?为什么它工作?

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

## hide .php extension 
# To externally redirect /dir/foo.php to /dir/foo 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
RewriteRule^%1 [R=302,L] 

# To internally forward /dir/foo to /dir/foo.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*?)/?$ $1.php [L] 

回答

1

您可以像这样添加例外:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

## hide .php extension 
# To externally redirect /dir/foo.php to /dir/foo 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
RewriteRule !^(exception1|exception2) %1/ [R=302,L] 

# To internally forward /dir/foo to /dir/foo.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*?)/?$ $1.php [L] 

BTW这个代码和注释的样子是我会在过去:)

+0

杰出写它,虽然我有作者在这里,我怎样才能添加一个尾部的斜杠到URL? – 2014-10-08 19:03:53

+0

检查更新代码以添加尾部斜线。 – anubhava 2014-10-08 19:08:10