2011-09-14 52 views
0

我一直在使用以下代码将用户重定向到超过2年的域。.htaccess重定向循环

假设用户将导航到my-example.com,索引页面是默认加载博客的模板,因此实际的url是my-example.com/index.php?nid=blog,但是url在浏览器中显示的是my-example.com/blog。

我一直在使用.htaccess文件与下面的代码来掩盖这个网址,使其更易于阅读和搜索引擎友好: -

RewriteEngine On 

RewriteRule ^blog(/)?$ /index.php?nid=blog [NC,L] 
RewriteRule ^blog/([A-Za-z0-9-]+)(/)?$ /index.php?nid=blog&article=$1 [NC,L] # Handle product requests 

在index.php文件中我用下面的代码发送用户去我的例子my-example.com/blog

if ($nid == "") { 
    header("Location: ./blog/"); 

} 

这在PHP 4(默认为我的主机)罚款。但是我需要为我的新网站使用PHP 5,所以已经添加了AddType x-mapp-php5 .php到.htaccess的顶部,以便Apache使用php 5,但是这已经削弱了我的php头重定向。

Chrome和Firefox都给出了类似的错误,即页面不会以一种永远不会完成的方式重新定向 - 重定向循环。

我没有改变我的模板中的PHP只添加了AddType和一个包含新内容。任何任何想法?

我试过使用.htaccess重定向到./blog,但这似乎会导致相同的错误。

回答

1

你之前可能已经有了register_globals。

改为从$ _GET [“nid”]读取nid。

$nid = @$_GET["nid"]; 

if ($nid == "") { 
    header("Location: ./blog/"); 
} 
+0

哦,真是愚蠢!完全忘记了注册全局变量 - 已经太久了!非常感谢!让我的夜晚有! :d – KryptoniteDove