2013-04-10 142 views
1

我做了我所有的htaccess重寫過程,但現在我想排除它的所有目錄和文件。關於這個htaccess的所有提示都很受歡迎,因爲我沒有重寫規則的經驗.......htaccess rewriterules排除目錄

我發現RewriteCond只適用於下面的第一條規則。 因此,如何從所有規則中排除所有文件和目錄?

Allow from All 
RewriteEngine on 

SetEnv DEVELOPMENT_ENVIRONMENT true 


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

#One url parameter 
RewriteRule ^([a-zA-Z0-9_]*)/$ index.php?language=$1 
RewriteRule ^([a-zA-Z0-9_]*)$ index.php?language=$1 

#Two url parameters 
RewriteRule ^([a-zA-Z0-9_]*)/([a-zA-Z0-9_]*)$ index.php?language=$1&page=$2 
RewriteRule ^([a-zA-Z0-9_]*)/([a-zA-Z0-9_]*)/$ index.php?language=$1&page=$2 

#Three url parameters 
RewriteRule ^([a-zA-Z0-9_]*)/([a-zA-Z0-9_]*)/([a-zA-Z0-9_]*)$ index.php?language=$1&page=$2&feed=$3&message=$3&page_number=$3&id=$3 
RewriteRule ^([a-zA-Z0-9_]*)/([a-zA-Z0-9_]*)/([a-zA-Z0-9_]*)/$ index.php?language=$1&page=$2&feed=$3&message=$3&page_number=$3&id=$3 

#Four url parameters 
RewriteRule ^([a-zA-Z0-9_]*)/([a-zA-Z0-9_]*)/([a-zA-Z0-9_]*)/([a-zA-Z0-9_\-]*)$ index.php?language=$1&page=$2&id=$3 
RewriteRule ^([a-zA-Z0-9_]*)/([a-zA-Z0-9_]*)/([a-zA-Z0-9_]*)/([a-zA-Z0-9_\-]*)/$ index.php?language=$1&page=$2&id=$3 

#Five url parameters 
RewriteRule ^([a-zA-Z0-9_]*)/([a-zA-Z0-9_]*)/([a-zA-Z0-9_]*)/([a-zA-Z0-9_]*)/([a-zA-Z0-9_]*)$ index.php?language=$1&page=$2&feed=$3&year=$4&month=$5 
RewriteRule ^([a-zA-Z0-9_]*)/([a-zA-Z0-9_]*)/([a-zA-Z0-9_]*)/([a-zA-Z0-9_]*)/([a-zA-Z0-9_]*)/$ index.php?language=$1&page=$2&feed=$3&year=$4&month=$5 

回答

1

這樣我怎麼能排除所有規則中的所有文件和目錄?

我猜你的意思是:

因此,如何排除存在的所有規則所有文件和目錄

像這樣:

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule .* - [L] 

替換第2條RewriteCond線與上述集。

+0

太好了,完美無缺! – MathiasB 2013-04-10 10:31:03