2013-12-13 30 views
0

我正在開發一個小型項目,在這個項目中,我使用.htaccess使URL短而甜。但它不起作用。代碼如下:爲什麼它在.htaccess中發生錯誤是因爲它的條件?

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php     #removing .php extension 


RewriteCond %{SCRIPT_FILENME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^category/(.+)$ category.php?category=$1 #removing get variables 

通過使用第一個條件,它將刪除在URL欄中使用.php擴展名。添加第二個條件的目的是刪除GET變量。網址是這樣的:

www.example.com/category.php?category=latest 

,我想這個網址是這個樣子: www.example.com/category/latest

回答

0

翻轉的順序,否則第一條規則將這一類URI也趕上。

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^category/(.+)$ category.php?category=$1 [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*)$ $1.php [L] 
+0

是啊!它的工作;)感謝哥們:D – user3099030

+0

如果這個答案幫助你解決了你的問題,請考慮將其標記爲「已接受」,以便將來遇到類似問題的用戶將能夠輕鬆地看到它。 – anubhava

相關問題