URL重写不显示css,img和js文件

时间:2015-01-21 07:28:05

标签: .htaccess

我的.htaccess文件如下所示

Options +FollowSymLinks
RewriteEngine On

RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)?$ /fm/page_new?location=$1&
r_id=$2&name=$3 [L]

现在,当我通过上面的重写登陆page_new(URL:http://localhost/fm/delhi/25/moods)时,我的css,js和img文件都没有被应用到页面。

我用Google搜索了如何做到这一点,我得到了以下代码

 # Allow any files or directories that exist to be displayed directly
 RewriteCond ${REQUEST_URI} ^.+$
 RewriteCond %{REQUEST_FILENAME}     
 \.(gif|jpe?g|png|js|css|swf|php|ico|txt|pdf|xml)$ [OR]
 RewriteCond %{REQUEST_FILENAME} -f [OR]
 RewriteCond %{REQUEST_FILENAME} -d [OR]
 RewriteCond %{REQUEST_FILENAME} -l
 RewriteRule ^ - [L]

这也无法实现目标,因为上述规则允许.php访问,我想限制相同。但是,通过上面的重写,css和js以及img文件也没有得到应用。

请帮忙

1 个答案:

答案 0 :(得分:1)

这可能是因为您的链接是相对网址(看起来像<img src="something.png"> vs <img src="/full/path/something.png">)。因此,要么将链接更改为绝对URL,要么将相对URI基础添加到页面标题中:

<base href="/fm/" />