2011-04-01 54 views
0

規則這是我的htaccess文件碰撞在htaccess的

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php #Line 1 
RewriteRule ^([a-zA-Z0-9_-]+)$ product.php?name=$1 #Line 2 
RewriteRule ^([a-zA-Z0-9_-]+)/$ product.php?name=$1 #Line 3 

1號線是去除PHP擴展的所有文件 2號線和3是這樣的,如果你輸入website.com/它會轉化爲網站.COM/product.php?名稱=東西

現在,我安裝了一個博客其URL是website.com/blog

這與產品的干擾。所以,而不是提供website.com/blog它會被轉換爲網站/ product.php?name=blog這是不正確的結果。這個問題怎麼解決。

回答

4

你會發現這個問題非常有用:Redirect requests only if the file is not found?

# If requested resource exists as a file or directory, skip next two rules 
RewriteCond %{DOCUMENT_ROOT}/$1 -f [OR] 
RewriteCond %{DOCUMENT_ROOT}/$1 -d 
RewriteRule (.*) - [S=2] 
# 
# Requested resource does not exist, do rewrite if it exists in /archive 
RewriteCond %{DOCUMENT_ROOT}/archive/$1 -f [OR] 
RewriteCond %{DOCUMENT_ROOT}/archive/$1 -d 
RewriteRule (.*) /archive/$1 [L] 
# 
# Else rewrite requests for non-existent resources to /index.php 
RewriteRule (.*) /index.php?q=$1 [L] 

下還可能感興趣的:How do I ignore a directory in mod_rewrite?

嘗試之前,任何其他規則把這個。

RewriteRule ^blog - [L,NC] 
+0

非常好。有用。在其他所有工作之前的最後一條重寫規則。謝謝smdrager。 – Saradhi 2011-04-01 15:56:18