2015-04-21 84 views
1

我試圖重寫一個URL,但事情並不如必須努力,我得到按摩簡單的.htaccess重寫規則,但不能正常工作

未找到 所請求的URL/1/1.html在此服務器上找不到。

這是我在.htaccess

Options +FollowSymLinks 
RewriteEngine On 

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

RewriteRule ^/([^/]*)/([^/]*)\.html$ /view.php?id=$1&name=$2 [L] 

這是href鏈接,這種情況下

href="/'.$row['id'].'/'.$row['name'].'.html" 

任何想法,這是爲什麼?

回答

2

您必須刪除斜線在規則

RewriteRule ^([^/]+)/([^/]+)\.html$ /view.php?id=$1&name=$2 [L] 

只有當你直接在httpd.conf寫它,而不是.htaccess文件你需要在你的規則領先斜線。

你也需要它,直到Apache 2.4如果我不犯錯

+0

謝謝你的答案。那麼現在的CSS樣式,因爲它消失... – John

+0

啊是的..我的錯誤。再次感謝! – John

+1

這是因爲您已經使用您的規則創建了一個虛擬目錄。你所要做的就是爲你所有的html資源使用絕對路徑。你也可以在所有關注頁面的''html標籤後面加上