0

我知道这可能是一个经常被问到的问题,我一直在寻找答案,但找不到任何可以回答我的问题的答案。我假设这是因为我没有找出正确的搜索词,所以很抱歉如果这是多余的......谢谢你的时间!

我使用 .htaccess 将我的 URL 重写为对用户更友好的格式。这就是我想要做的所有事情,如果有更好的方法来做到这一点,我将不胜感激!

反正; 我将 localhost/room/2 重写为 index.php?p=room&id=2。这就像一个魅力。

RewriteRule ^room/([0-9]*)$ /index.php?p=room&id=$1 [L]

您可能已经说出了我的问题:我正在使用 room/room_number 创建一个虚拟文件夹。因此,当我 - 例如 - 包含使用 IMG-Tag 的图片时,该 src-Attribute 也被重写以适应服务器假定的工作目录。而不是请求

localhost/img/image.jpg

它要求

localhost/room/img/image.jpg

这显然不是正确的位置。所以我的问题是;如何在将页面资源重新重定向到其原始路径的同时将URL重写为好用且用户友好的内容?

4

2 回答 2

1

通过在路径前加上前导斜杠来使用相对于根目录的路径:

<img src="/img/image.jpg" />
于 2013-03-07T23:09:03.650 回答
1

这个问题的另一个(也是相当标准的)解决方案是添加一个 RewriteCond ,以便在请求确实存在的资源时永远不会应用该规则。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^room/([0-9]*)$ /index.php?p=room&id=$1 [L]
于 2013-03-08T13:30:52.720 回答