.htaccess重定向循环

时间:2011-09-14 22:04:47

标签: php .htaccess redirect

我一直在使用以下代码将用户重定向到域名超过2年。

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

我一直在使用带有以下代码的.htaccess文件来屏蔽此网址并使其更易于阅读和SEO: -

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到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和新内容的include。任何想法?

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

1 个答案:

答案 0 :(得分:1)

你之前可能有过register_globals。

从$ _GET [“nid”]中读取nid。

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

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