2012-08-24 30 views
1

我正在使用mod_rewrite为我正在处理的网站创建更漂亮的URL。但是,我的css和js文件夹正在导致重定向循环。什么是导致我的重定向循环?

下面是在我的.htaccess

AddDefaultCharset On 
AddDefaultCharset UTF-8 
AddCharset UTF-8 .tpl 
AddCharset UTF-8 .js 
AddCharset UTF-8 .css 
AddCharset UTF-8 .php 

RewriteEngine On 
RewriteBase /guildtree/ 
RewriteRule ^([a-zA-Z0-9_'-]+)/(.*)$  characters.php?realm=$1&name=$2  [NC] 

我的CSS被重定向到

http://localhost/guildtree/css/error 

和我的JS被重定向到

http://localhost/guildtree/js/error 

我的图片都是即使通往他们的道路是正确的,他们也会被打破。直接转到图像也会导致重定向循环。

http://localhost/guildtree/images/roster/error 

有没有什么突出的原因是造成这个循环?谢谢。

更新:

解决了CSS和图像的问题。 JS仍然无法正常工作。

回答

1

这不是一个重定向循环,你的图片可能被characters.php路由所捕获。在您的规则中添加一些排除项:

RewriteBase /guildtree/ 

RewriteCond %{REQUEST_URI} !\.(css|js|png|jpe?g|gif)$ [NC] 
RewriteRule ^([a-zA-Z0-9_'-]+)/(.*)$  characters.php?realm=$1&name=$2  [NC] 

此外,您可能有相对/绝对路径问题。如果你的链接是相对的,它们将被新的路径被改变,你需要添加一个:

​​

或任何基本路径应该是你的所有相关链接。

+0

这解决了CSS和图像的问题。不知道为什么JS不工作。我认为这是一个重定向循环,因为我的浏览器声明它是一个重定向循环。 – akari

+0

@akari检查以确保脚本链接不相对。 –

+0

我可以查看源代码并单击链接访问文件,我不再收到错误,因此我不完全确定发生了什么。 – akari