2011-09-14 3 views
0

J'ai utilisé le code suivant pour rediriger les utilisateurs vers un domaine depuis plus de 2 ans.Boucle de redirection .htaccess

Disons qu'un utilisateur naviguera vers my-example.com la page d'index est un modèle qui par défaut est de charger un blog donc l'URL est my-example.com/index.php?nid=blog mais l'URL Déplacer dans le navigateur est my-example.com/blog.

J'utilise un fichier .htaccess avec le code ci-dessous pour masquer cette URL et le rendre plus convivial et lecteur 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 

Dans le fichier index.php j'utilisais le code ci-dessous pour envoyer aux utilisateurs d'aller à mon-exemple my-example.com/blog

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

} 

Cela a bien fonctionné en php 4 (par défaut pour mon hôte). Cependant, j'ai besoin d'utiliser PHP 5 pour mon nouveau site, donc j'ai ajouté AddType x-mapp-php5 .php au début du fichier .htaccess pour qu'Apache utilise php 5 mais cela a perturbé ma redirection d'en-tête php. Chrome et Firefox donnent tous les deux des erreurs similaires: la redirection de la page ne s'effectue pas correctement, ce qui entraîne une boucle de redirection.

Je n'ai pas changé le php dans mon modèle seulement ajouté AddType et une inclusion pour le nouveau contenu. Quelqu'un a des idées?

J'ai essayé d'utiliser une redirection .htaccess vers ./blog mais cela semble provoquer la même erreur.

Répondre

1

Vous avez probablement eu register_globals plus tôt.

Lecture nid à partir de $ _GET ["nid"] à la place.

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

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

Urgh comment stupide! complètement oublié de registre globals - été trop longtemps! Merci beaucoup! fait ma nuit qui a !! :RÉ – KryptoniteDove