0

我试图在我的网络应用程序上重写一些网址,问题是它也重写了图像/css/js/等......我的.htaccess:

DirectoryIndex engine.php
RewriteEngine On
Options -MultiViews
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ engine.php?link=$1

和一些示例html:

<img src="./theme/default/images/img.png" height="50px" />

问题是如果我这样做:http ://domain.com它可以工作,但如果我这样做http://domain.com/test/asd它会将图像重写为 /asd/theme/default/images/img.png ...

4

2 回答 2

0

这可能不是您的重写本身的问题,它可能是用于您的资源的 src 路径的问题。没有存在的文件被重写。如果您使用的是相对路径,则将 URI 重写为更深的路径(即)。

如果您正在请求http://domain.com/test/asd并且资源位于,http://domain.com/theme/default/images/img.png请确保您的源路径是完全合格的或/default/images/img.png. 根据您的描述,听起来资产的路径是default/images/img.png. 由于您的重写使您看起来位于一个名为的文件夹中test/asd,因此域上的路径变为test/asd/default/images/img.png.

于 2013-03-19T12:07:01.340 回答
0

您可以使用

<base href="http://domain.com/" />

BASE 元素必须出现在文档的 HEAD 部分中,在任何引用外部源的元素之前。

于 2013-03-27T12:33:21.657 回答