由于.htaccess导致格式丢失

时间:2012-09-24 10:12:37

标签: html apache .htaccess webserver

我正在为我的网页制作.htaccess,这是代码:

Options -Indexes

RewriteEngine On
RewriteRule ^([A-Za-z]+)/([0-9]+)/$ files.php?row=$1&column=$2 

RewriteRule ^([A-Za-z]+)/?$ $1/1/ 

RewriteCond %{HTTP_REFERER} !^http://(www\.)?mywebpage\.at [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} ^http://.*$
RewriteRule \.(jpe?g|gif|bmp|png)$ /imgs/hotlinks.png [L] 

RewriteCond %(REQUEST_URI) ^imgs/$ [NC]
RewriteRule / - [F]

ErrorDocument 404 /404.html

ErrorDocument 403 /403.html

问题是,我的图片没有显示在带有重写URL的页面中。显然,他们的路线也受到重写的影响。简单解释:位于www.mywebpage.at/imgs/pic1.jpg的图片在www.mywebpage.at/files.php?row=first&column=3上加载,但当我尝试输入www.mywebpage.at/时第一个/ 3 /浏览器在www.mywebpage.at/first/3/imgs/pic1.jpg中查找图像,显然无法加载它。

我如何解决这个问题,以便图片的路线不会改变,无论我在哪里使用它们?

1 个答案:

答案 0 :(得分:2)

你可以这样做:

RewriteCond $1 !^(imgs)
RewriteRule ^([A-Za-z]+)/([0-9]+)/$ files.php?row=$1&column=$2 

这将重写除imgs文件夹之外的所有内容。

编辑:道歉,误读问题。

使图像路径绝对。例如。相对路径是:

imgs/image1.jpg

绝对路径是:

/imgs/image1.jpg

开头的斜线告诉它转到网站的根部然后转到imgs,然后转到image1.jpg。