2013-01-31 46 views
0

我正在清理我的網址。一旦我使用MOD_REWRITE,是否需要修改我的網頁中的鏈接?

說我有一個URL http://www.example.com/index.php?id=12345&name=some-name

我只是改變了它更好看使用mod_rewrite

http://www.example.com/blog/12345/some-name

現在的痛苦是在網頁的index.php沒有加載任何圖像,C​​SS文件和錨鏈接全部斷開。

位置我的形象是http://www.example.com/images/12345/some-image.jpg

我已經通過我的網站使用相對路徑。

現在是否需要更改我所有網頁上的鏈接? .htaccess可以爲我做一些詭計嗎?請幫忙。

這裏是我的.htaccess-

RewriteEngine On 

RewriteCond %{SCRIPT_FILENAME} !-d 

RewriteCond %{SCRIPT_FILENAME} !-f 

RewriteRule ^blog/(.*)/$ index.php?id=$1 [NC,L] 

RewriteRule ^blog/(.*)/(.*)$ index.php?id=$1&name=$2 [NC,L] 

回答

2

看看我添加第二行。

RewriteEngine On 
RewriteRule \.(css|jpe?g|gif|png|js|css|htm|html|mp3|wav|ico)$ - [L] 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^blog/(.*)/$ index.php?id=$1 [NC,L] 
RewriteRule ^blog/(.*)/(.*)$ index.php?id=$1&name=$2 [NC,L] 

這基本上說,如果你在URL中看到這個擴展名,只是直接傳遞給文件。

+0

謝謝!糾正我,如果我失去了一些東西。我的.htaccess現在看起來像這樣。但我無法實現我所期待的。 RewriteEngine On RewriteRule \。(css | jpe?g | gif | png | js | css | htm | html | mp3 | wav | ico)$ - [L] RewriteCond%{SCRIPT_FILENAME}!-d RewriteCond%{ SCRIPT_FILENAME}!-f RewriteRule^blog /(.*)/$ index.php?id = $ 1 [NC,L] RewriteRule^blog /(.*)/(.*)$ index.php?id = $ 1&name = $ 2 [NC,L] – Yesh

+0

這種變化是怎麼回事? –

+0

嘗試翻轉最後2行,如果這不起作用,我會在我的網絡服務器上做一個快速測試。 –

1

RewriteCond僅適用於下一條規則,而不適用於下面的所有規則。你的第二條規則並不是要避免存在的目錄和文件。試試這個

RewriteEngine On 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^blog/(.*)/$ index.php?id=$1 [NC,L] 


RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^blog/(.*)/(.*)$ index.php?id=$1&name=$2 [NC,L] 
1

啊......!

我只是在我的頭部添加這個小線,它解決了我所有的問題:)

<base href="http://example.com/ /> 

現在,我很喜歡...見鬼,爲什麼沒有我的腦海裏這麼長的時間來想這個: )

相關問題