使用.htaccess重写后,我的链接搞砸了

时间:2011-07-28 01:08:18

标签: .htaccess rewrite

我希望我的网站从domain.com/page.php?id=1转到domain.com/page/1

直接访问domain.com/live/1时,在.htaccess文件中使用RewriteRule ^page/(.*)$ page.php?id=$1,但CSS全部搞砸了。

例如,代替<link rel="stylesheet" href="style.css" type="text/css"/>指向domain.com/style.css,它指向domain.com/page/style.css

我该如何解决这个问题? :( :(

编辑:我应该开始使用非相对链接(完整路径)吗?

完整的.htaccess是:

Options +FollowSymLinks  
RewriteEngine On  

RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f  

RewriteRule ^page/(.*)$ page.php?id=$1

要解决此问题,我必须放<base href="http://domain.com/directory/" />

在我的页面的头部。由于不同的浏览器以不同的方式处理基本标记,我必须创建绝对路径的javascript文件。

2 个答案:

答案 0 :(得分:3)

我遇到了这个问题。这是因为您的浏览器现在假设/ page /是它应该开始寻找css文件等的根,简单地说:

<base href="/"> 

在你的

<head>.

您的浏览器现在将从您网站的根目录中查找css文件等。

编辑:nvm,格式化因为从我的iPod发帖但我看到你已经解决了这个问题:)

答案 1 :(得分:0)

要解决这个问题,我必须把

在我的页面的头部。由于不同的浏览器以不同的方式处理基本标记,我必须创建绝对路径的javascript文件。