【发布时间】:2011-07-29 21:38:59
【问题描述】:
我希望我的网站从 domain.com/page.php?id=1 转到 domain.com/page/1
在.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 文件。
【问题讨论】:
-
发布整个 .htaccess。您是否添加了
RewriteCond %{REQUEST_FILENAME} !-f和RewriteCond %{REQUEST_FILENAME} !-d之类的条件,所以它只在虚拟路径时才起作用? -
我已经将它作为编辑发布在上面。