首页  >  问答  >  正文

标题重写为:当图片名称包含连字符、过长或依赖其位置时,图片加载将受阻

我有一些图片放在我的网站下的 C:\xampp\htdocs\catshop\assets\img 文件夹中。如果一个图片的名字像 food-adult-wet-meo-sardine-in-prawn-jelly-400g,它不会在网站上显示。然而,如果名字像 can1.png 或者 can-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 天前358

全部回复(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
  • 取消回复