我有一些图片放在我的网站下的 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>            Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
根据我的理解,
/catshop/assets位置解析图像等/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部分