2011-09-14 205 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