[英]Mod_Rewrite: htaccess rule to rewrite image URL
我們如何在 .htaccess 文件中使用 Apache Mod_Rewrite 僅重寫.png 文件的真實路徑?
可見URL:
.com/italy/region/internal/map1234.png
.com/italy/country/map1234.png
.com/italy/map1234.png
文件的真實位置:
.com/images/map1234.png
注意我指的是 Mod_Rewrite 而不是常見的 301 重定向。
RewriteCond %{REQUEST_URI}./images/.* RewriteRule ^(.*\,(gif|jpg|png))$ images/$1 [QSA,L]
它有效,但不適用於子文件夾。
這仍然會重定向子文件夾中的圖像,但/italy/region/internal/map1234.png
將被重定向到/images/italy/region/internal/map1234.png
。
要使其適用於任何子文件夾,請將其更改為:
RewriteCond %{REQUEST_URI} !/images/
RewriteRule /(\w+\.(gif|jpg|png))$ images/$1 [L]
\w+
(以前是.*
) - 通過在捕獲的模式中排除斜線,我們確保我們只捕獲文件名而不是整個 URL 路徑。
不需要QSA
標志。
更新:不幸的是,如果我使用帶有破折號的圖像,此代碼將失敗(404)。 例如 my-name.png 有什么想法嗎?
將上述正則表達式中的\w
(任何單詞字符)更改為[\w-]
以包含連字符。 例如:
RewriteRule /([\w-]+\.(gif|jpg|png))$ images/$1 [L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.