Mod rewrite 资源的mod重写

Mod rewrite 资源的mod重写,mod-rewrite,Mod Rewrite,我试图在我的web应用程序上重写一些URL,问题是它也重写了图片/css/js/etc。。。 我的.htaccess: DirectoryIndex engine.php RewriteEngine On Options -MultiViews RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ engine.php?link=$1 还有一些html示例: <

我试图在我的web应用程序上重写一些URL,问题是它也重写了图片/css/js/etc。。。 我的.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" />


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

这可能不是重写本身的问题,可能是用于资源的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
,您可以使用

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


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

是的,但是如何从corect文件夹加载它?如果我转到(这里它正确加载),为什么它会工作呢?但是如果我深入uri,它会崩溃,正如我所说的,您需要使src值成为相对于根的完整路径。你不能用.htaccess来解决这个问题,因为你可以从两个不同的URL在不同的深度为同一个页面提供服务。我解决了它,我在标题中添加了一个,它可以工作。。。