2012-08-07 36 views
0

我有這個頁面,在這裏我要使用mod_rewrite從CSS和圖像mod_rewrite的

http://example.com/dev/main/1234

使重寫到

http://example.com/dev/index.php?page=main&id=1234

我已經成功地得到了mod_rewrite的頁面工作但我仍然遇到CSS和圖像的問題。

1 Options +FollowSymLinks 
    2 
    3 ReWriteEngine on 
    4 RewriteRule ^(.*)/([^/\.]+)/?$ /dev/index.php?page=$1&id=$2 [L] 
    5 RewriteCond %{REQUEST_FILENAME} !-d 
    6 RewriteCond %{REQUEST_FILENAME} !-f 

CSS中位於/無功/網絡的/ dev/css和圖像在/ var/WWW的/ dev/IMG。當我訪問http://example.com/dev/main/1234時,如何讓mod_rewrite加載相同的圖像和css?謝謝!

回答

0

你在你的htaccess中有這兩個條件嗎(我假設你的htaccess在/ dev文件夾中)?

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

如果沒有,您的圖片的URL將被改寫,因爲它們匹配您的正則表達式(CSS/image.jpg的)

THOS兩個條件避免的URL時,請求是真實路徑改寫(以指向文件或文件夾)

+0

我在/ dev文件夾中有.htaccess。我添加了條件,但它仍然不起作用。當我查看源代碼並按照css/main.css的鏈接進行操作時,我得到一個apache 404錯誤,請求/var/www/dev/main/css/main.css .. – drodil 2012-08-07 12:12:48

+0

反正保留這些條件。你有其他規則嗎? – zessx 2012-08-07 12:14:57

+0

那裏沒有其他規則。下面是完整的.htaccess: 1選項+了FollowSymLinks 3 RewriteEngine敘述上 4的RewriteCond%{REQUEST_FILENAME} -D- 5的RewriteCond%{REQUEST_FILENAME} -f 6重寫規則^ /([!(*)。 ^/\。] +)/?$ /dev/index.php?page=$1&id=$2 [L] – drodil 2012-08-07 12:15:19

0

哇。得到它與一些黑客工作。不知道這是否是正確的方式,但它的工作原理:

RewriteRule ^(.*)/css/(.+)?$ css/$2 [NC,L] 
RewriteRule ^(.*)/img/(.+)?$ img/$2 [NC,L] 
+0

沒有答案主要是因爲你的問題不夠精確。例如,我自己的重寫規則基於vhost和文件的擴展名。 – 2012-08-07 15:12:39