簡體   English   中英

Mod_Rewrite:htaccess 規則重寫圖像 URL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM