我想使用mod_rewrite來處理我的頭像圖片的請求。 我有一個包含所有.png
圖片的文件夾,並且該文件以該帳戶的用戶名命名。mod_rewrite,頭像設置
所以我想請求/avatar/Juddling
,顯示圖像,/images/avatars/Juddling.png
但如果該文件不存在,我想它顯示一個default.png
圖像。
Options +FollowSymLinks
Options +Indexes
Options -MultiViews
RewriteEngine On
RewriteRule ^avatar/(.*)$ images/avatars/$1.png [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^avatar/(.*)$ images/avatars/default.png [NC,L]
阿帕奇似乎只待處理的第一RewriteRule
,因爲我得到一個404,如果頭像是不存在的,而不是看到默認的圖像。
這對我來說不起作用,我認爲這是因爲在第一種情況下,你使用的是反向鏈接$ 1,但是apache並沒有被告知URL的哪一部分被使用,所以它是在尋找文件,/images/avatars/avatar/Juddling.png? ,因爲所有請求都會作爲默認圖像顯示出來。 – Juddling 2009-07-14 18:36:10
`$ 1`將保留相應的`RewriteRule`模式的匹配(有關技術細節,請參閱http://httpd.apache.org/docs/2.2/rewrite/rewrite_tech.html)。但是,您可能需要爲第一個表達式添加一個`/`:`%{DOCUMENT_ROOT}/images/avatars/$ 1.png`。如果這不起作用,請使用mod_rewrite的日誌記錄功能(請參閱http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriteloglevel)以查看該表達式評估的值。 – Gumbo 2009-07-14 18:50:29