Php 使用其他文件夹中的资源创建URL

Php 使用其他文件夹中的资源创建URL,php,apache,mod-rewrite,Php,Apache,Mod Rewrite,我想为我的网站创建较短的链接,例如 site.come/u/1 而不是 site.com/user.php?u=1 我曾经玩过mod_rewrite,但老实说,我不知道我在用它做什么,我可以创建url,但是当资源加载到页面上时,它们是从/u/css/core.css加载的,而不是/css/core.css 我正在用相对URL加载css/images/js,有没有办法让重写规则排除某些文件夹,而不必将所有代码更改为绝对URL 谢谢您应该使用绝对路径,一切都会好起来的 例如,您可以这样做: &l

我想为我的网站创建较短的链接,例如

site.come/u/1
而不是

site.com/user.php?u=1
我曾经玩过
mod_rewrite
,但老实说,我不知道我在用它做什么,我可以创建url,但是当资源加载到页面上时,它们是从
/u/css/core.css
加载的,而不是
/css/core.css

我正在用相对URL加载css/images/js,有没有办法让重写规则排除某些文件夹,而不必将所有代码更改为绝对URL


谢谢

您应该使用绝对路径,一切都会好起来的

例如,您可以这样做:

<?php 
$baseURL = basename($_SERVER['SCRIPT_FILENAME']); 
?>
<link href="<?php echo $baseURL; ?>/css/core.css" rel="stylesheet" type="text/css" />


好吧,您基本上是在回答您自己的问题-您需要为css使用绝对路径,而不是使用相对路径

您的浏览器现在看到的页面是www.site/u/user.php,即您需要使用../css/core.css。如果您的站点位于根目录下,/css/core.css可能就足够了,但使用完整路径(即echo
$webpath.css/core.css“
,其中$wehpath很可能类似于
$webpath=“http://”$\u SERVER[“SERVER\u NAME”]。$\u SERVER[“REQUEST\u URI”;

您可以尝试使用:

RewriteCond %{REQUEST_URI} ^(css|js|images)/.*$ [NC]
RewriteRule ^(.*)$ $1 [L]
并将其置于任何其他规则之前


我已经测试过了,效果很好

为什么不使用绝对路径?如果url重写有效,这不是一个
mod_rewrite
问题。我们有几百行代码,我们可以替换路径,但它位于优先级列表的底部。我询问mod_rewrite的原因是我想知道是否有办法将目录从重写中排除,例如,css目录这是我试图避免的,但如果这是唯一的解决方案,它必须这样做!谢谢:)谢谢,我会尽快试一试