2017-06-15 5 views
0

J'ai un problème avec htaccess rediriger une variable pour nettoyer l'URL..htaccess rediriger la variable vers le lien amical - beaucoup de redirections

le code:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) index.php?page=$1 [R] 

RewriteCond %{QUERY_STRING} ^page=about$ 
RewriteRule ^(.*)$ https://www.url.com/about? [R=301,L] 

je veux juste rediriger ceci: "? Page = sur le thème" ceci: "/ about"

et avec le code ci-dessus me donne à beaucoup .. réoriente

Merci pour le temps de regarder cela.

+0

Vous devez voir ce post: https://stackoverflow.com/questions/1231067/htaccess-rewrite-for -query-string – Anurag

+0

Cette solution ne redirige pas et j'ai cette solution ci-dessus, mais ne fonctionne pas correctement ... –

+0

le premier "RewriteRule" me donner les liens amicaux. mais le second redirige vers/à peu près comme je veux mais il me donne beaucoup de redirections et je ne sais pas comment résoudre ce problème .... –

Répondre

0

J'ai donc essayé votre code dans un répertoire vide sur le serveur local.

Cela fonctionne très bien:

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule (.*) index.php?page=$1 [R] 

    RewriteCond %{QUERY_STRING} ^page=about$ 
    RewriteRule ^(.*)$ https://www.url.com/about? [R=301,L] 
</IfModule> 

Mais pas quand je commente cette ligne de code RewriteEngine on. Alors essayez votre code avec ce bout de ligne et ça devrait fonctionner correctement.

+0

Désolé mais il faut aller à la page d'erreur "ERR_TOO_MANY_REDIRECTS" –

+0

pourriez-vous coller vous complète .htaccess code? Vérifiez également toute autre redirection qui a lieu après celle ci-dessus. – Anurag

0

C'est le code complet.

#Rewrite settings 
Options +FollowSymlinks 
RewriteEngine on 

RewriteCond %{HTTPS} !on 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

RewriteCond %{HTTP_HOST} ^url.com [NC] 
RewriteRule ^(.*)$ https://www.url.com/$1 [L,R=301] 

#Remove index.php from url 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index\.php($|\ |\?) 
RewriteRule^/%1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)$ index.php?p=$1 [L] 

#RewriteCond %{QUERY_STRING} ^p=about$ 
#RewriteRule ^(.*)$ https://www.url.com/about? [R=301,L] 

RewriteCond %{HTTP_USER_AGENT} libwww-perl.* 
RewriteRule .* ? [F,L] 

Ce morceau de code est commenté parce que cela ne fonctionne pas:

#RewriteCond %{QUERY_STRING} ^p=about$ 
#RewriteRule ^(.*)$ https://www.url.com/about? [R=301,L]