首頁  >  問答  >  主體

標題重寫為:當圖片名稱包含連字符、過長或依賴其位置時,圖片載入將受阻

我有一些圖片放在我的網站下的 C:\xampp\htdocs\catshop\assets\img 資料夾中。如果圖片的名字像 food-adult-wet-meo-sardine-in-prawn-jelly-400g,它不會在網站上顯示。然而,如果名字像 can1.pngcan-1.png,它會正確顯示(儘管它們在同一個位置)。如果我把它命名為 food-prawnjelly.png,即使只有一個連字符,它也不會顯示。 foodprawnjelly.png 也不行。

如果我把圖片移到C:\xampp\htdocs\catshop\assets\img\food,它也不會顯示,即使它的名字之前是可以「工作」的,例如can1.png

我不知道這是否相關或是否是導致問題的原因,但是我正在使用重寫規則來建立漂亮的連結。一個連結像catshop/food/adult-cat.food 會被重寫為show-category.php,在那裡進行適當的過濾以顯示來自adult-cat -food 的產品。我已經為圖片路徑使用了絕對連結(例如 /catshop/assets/img/can-1.png

使用的重寫規則:RewriteRule ^(\w )/(\w )$ show-category.php [NE,L]

#如果需要提供更多信息,請告訴我,謝謝!

catshop
├─ .htaccess
├─ assets
│  ├─ bootstrap
│  ├─ css
│  ├─ fonts
│  ├─ img
│  │  ├─ can-1.png
│  └─ js
├─ index.php
├─ login.php
├─ register.php
├─ show-category.php
└─ logout.php

編輯:.htaccess 檔案的內容

<IfModule mod_rewrite.c>

    Options +FollowSymLinks
    RewriteEngine On    # 打开重写引擎
    RewriteRule    home   index.php    [NC,L]    
    RewriteRule    food   show-category.php    [NC,L]    

    RewriteRule   ^((\w+)\/)+(\w.+)$  show-category.php    [NE,L]    

</IfModule>

P粉794851975P粉794851975277 天前361

全部回覆(1)我來回復

  • P粉604669414

    P粉6046694142024-01-17 09:49:34

    根據我的理解,

    1. 您希望直接從/catshop/assets位置解析圖像等
    2. 任何.php檔案必須解析
    3. 任何其他不包含單字「home」的URL必須解析為/catshop/show-category.php

    (請注意:您可能希望更改對home的使用,因為這將匹配任何包含home單字的字串)

    <IfModule mod_rewrite.c>
    
        Options +FollowSymLinks
        RewriteEngine On    # 打开重写引擎
        RewriteRule    home   index.php    [NC,L]    
        RewriteRule   ^((?!assets)\w+\/)+(\w+\.\w+)(?<!\.php)$  catshop/show-category.php    [NE,L]    
    
    </IfModule>

    這將尋找不包含單字assets.php的任何URL部分

    回覆
    0
  • 取消回覆