0

我的 .htaccess 文件在 IE 中无法正常工作,它在 FireFox 和 Chrome 中运行良好,但在 IE 中无法加载图像,并且链接无法正常工作。CSS 工作正常,所有 PHP 接缝也能正常工作。

我很确定这与我需要从 url 中提取 2 个 GET 变量有关,因为当我只需要提取一个变量时它工作正常。无论如何,这是我的代码

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?([^/]+)/([^/]+)/?$ /website/index.php?id=$1&c=$2

请帮忙,我一直在寻找几个小时的解决方案。

4

2 回答 2

0

除图像和链接外,一切正常,例如,假设基本 url 是 localhost/website/148/category,我单击一个链接应该带我到 localhost/website/149/category 它带我到 localhost/website/ 148/类别/149/类别。所以它只是添加到它接缝的 url 上。

这是一个相对/绝对的 URI 问题,与您的重写规则无关。使用<base>标签应该可以解决这个问题,但是IE8 版本中存在错误,导致它在前面没有 FQDN 的情况下被忽略,例如:

<base href="http://localhost/website/">

(甚至不确定这是否能解决问题)。

是的,它需要在所有其他引用之前和<head> </head>标签内。解决此问题的唯一其他方法是将所有链接更改为绝对 URI 而不是相对链接。

于 2012-09-16T02:59:52.393 回答
0

我看不出任何重写条件将如何依赖于浏览器..您的问题一定出在其他地方。

也许尝试从您的规则中删除前导 / :

RewriteRule ^([^/]+)/([^/]+)/?$ /website/index.php?id=$1&c=$2
于 2012-09-16T02:21:43.243 回答