【问题标题】:Can't display images after using Apache RewiteEngine / .htaccess使用 Apache RewiteEngine / .htaccess 后无法显示图像
【发布时间】:2013-03-22 03:15:54
【问题描述】:

我有一个问题:

在我的服务器上,有:

http://www.domain.com/folder1/abc/html/index.html

在 index.html 中有一些图片或 pdf 文件的链接:

然后我使用 .htaccess 使 URL 更短并且它可以工作:

http://www.domain.com/~abc

但是在浏览器中,图片的链接显示:

http://www.domain.com/pic.jpg

无法显示。甚至我试图访问:

http://www.domain.com/~abc/pic.jpg

我收到 404 错误。

这是我的 .htaccess,我是有什么问题还是遗漏了什么?

选项 +FollowSymLinks 重写引擎开启 RewriteRule ^~(.*)$ /personalpages/personal_space/$1/html/ 重写规则 ^~(.*)$/(.*)$ /personalpages/personal_space/$1/html/$2

有什么建议吗?提前致谢。

【问题讨论】:

  • 但总是以~开头?它似乎是您规则中的相关字符。
  • abc 可以是任何名称。实际上,我要做的是建立个人主页:创建一个名为 abc(可以是用户名)的文件夹,上传他提供的文件并缩短 URL 以便于记忆。
  • 就像link 我认为这是一个常见的用法。

标签: apache .htaccess mod-rewrite url-rewriting


【解决方案1】:

你可以试试这个:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI}  !/personalpages/ [NC]
RewriteRule ^([^/]+)/?$   /personalpages/personal_space/$1/html/  [L,NC]

RewriteCond %{REQUEST_URI}  !/personalpages/ [NC]
RewriteRule ^([^/]+)/(.*)/?$  /personalpages/personal_space/$1/html/$2  [L,NC]

【讨论】:

  • 嗨@faa,感谢您的帮助。我的帖子中有一些不清楚的地方。我编辑了 .htaccess 部分。
  • 是的。它看起来不同,这就是我编辑你的帖子的原因。检查一下。
  • 请刷新页面,我相应地修改了我的答案。
  • 我很困惑为什么页面上的图片链接是www.domain.com/pic.jpg,应该是www.domain.com/~abc/pic.jpg吧?如果是这样,那么我们可以调整 htaccess 设置以使 pic.jpg 正确显示。
  • 第一件事是按照我的回答修改规则,使它们按预期工作。一旦你让它们工作,如果图像、CSS 和其他脚本没有加载是因为你在它们的链接中使用了相对路径。必须使用绝对路径或 BASE 元素。查看此link 了解有关如何使用最后一个的更多信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-13
  • 2018-04-07
  • 1970-01-01
  • 1970-01-01
  • 2015-10-01
  • 2018-09-10
  • 1970-01-01
相关资源
最近更新 更多