【问题标题】:My links got messed up after using .htaccess rewrite使用 .htaccess 重写后我的链接搞砸了
【发布时间】: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} !-fRewriteCond %{REQUEST_FILENAME} !-d 之类的条件,所以它只在虚拟路径时才起作用?
  • 我已经将它作为编辑发布在上面。

标签: .htaccess rewrite


【解决方案1】:

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

<base href="/"> 

在你的

<head>.

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

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

【讨论】:

  • 是的,我解决了这个问题,并希望通过提供答案来回馈社区。​​span>
  • 老问题,但你救了我的命...谢谢!
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 2011-08-09
    • 1970-01-01
    相关资源
    最近更新 更多