2011-07-28 39 views
3

我希望我的网站从domain.com/page.php?id=1去domain.com/page/1我的链接弄乱使用后的.htaccess重写

在.htaccess文件中使用的作品RewriteRule ^page/(.*)$ page.php?id=$1直接进入domain.com/live/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文件我不得不作出绝对路径,因为不同的浏览器处理的基础标签不同。

+0

发布整个.htaccess。您是否添加了像RewriteCond%{REQUEST_FILENAME}!-f'和'RewriteCond%{REQUEST_FILENAME}!-d'这样的条件,以便它只在虚拟路径的时候启动? –

+0

我已经发布它作为上面的编辑。 – pr0tocol

回答

2

我有牛逼他的问题。这是因为你的浏览器现在假定/页/是它应该开始寻找css文件等的根,简单地说:

<base href="/"> 

在你

<head>. 

您的浏览器现在将STRT寻找css文件等从您的网站的根。

编辑:NVM,搞砸了格式化,因为从我的iPod发布,但我看你已经解决了这个问题:)

+0

是的,我解决了这个问题,并想通过提供答案回馈社区。 – pr0tocol

+0

谢谢。你的答案解决了我的问题的一部分:) – Aris

0

为了解决这个问题,我不得不把

中的我的头页。由于不同的浏览器以不同的方式处理基本标签,因此我必须制作绝对路径的JavaScript文件。

+0

你被允许接受你自己的答案。 :) – Herbert