2017-06-03 80 views
0

我想ID轉換爲URL地址欄標題,我發現有關這個話題。我也創造了在根目錄下的代碼看起來.htaccess文件一樣ID所有權URL重寫不工作

<IfModule mod_rewrite.c> RewriteEngine On  RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ ProductDetail.php?Product=$1 [QSA,L] 
</IfModule>` 

但許多問題什麼工作。我是在重寫URL新的,我只是想爲你的親切問候轉換
ProductDetail.php?Product=1212ProductDetail/Title
感謝

+0

您需要注意,您創建的動態配置文件實際上是由http服務器考慮的。在apaches重寫模塊的文檔中的'AllowOverride'功能上使用lolok。 – arkascha

+0

AllowOverride All但不起作用 –

+0

嘗試檢查:在該配置文件中放置明確的語法錯誤。事後你的http服務器錯誤日誌文件中是否有錯誤?哪個錯誤? – arkascha

回答

1

一個URL重寫基本規則是:它是不可能來處理查詢而重寫它

如果在你的榜樣ProductDetail/Title標題指具有product=1212我們需要實際運行查詢,甚至生成的URL,這反過來會導致在查詢更改之前找到Title該項目的標題的方法,從而使效率降低(而不是在where子句中使用product,您必須使用一個字符串來代替Title)。

我們可以創建但是從ProductDetail.php?Product=1212改造ProductDetail/1212用下面的代碼

<IfModule mod_rewrite.c> 
     RewriteEngine on 
     RewriteCond %{REQUEST_FILENAME} !-d 
     RewriteCond %{REQUEST_FILENAME} !-f 
     RewriteRule ^(.*)$ ./ProductDetail.php?Product=$1 [QSA,L] 
    </IfModule> 

另外,你需要爲PHP文件所在的目錄中,以前面加上./ PHP文件在您的路徑。否則,它可能會產生一個錯誤,或根本不起作用。

Regards