2017-10-12 14 views
2

souhaitez rediriger urls param à seo urls amicalcomment rediriger ancienne URL avec des paramètres à la nouvelle url seo utilisant htaccess

https://example.com/a.php?slug=vr-promised-us-the-future-too-bad-we-re-stuck-in-the-present

à

https://example.com/vr-promised-us-the-future-too-bad-we-re-stuck-in-the-present

et

https://example.com/tag.php?id=Virtual-reality

à

https://example.com/tag/Virtual-reality

mon code .htaccess actuel

RewriteEngine On 

RewriteRule ^([a-zA-Z0-9_-]+)/?$ a.php?slug=$1 [L] 


RewriteCond %{HTTP_HOST} ^www\. [OR] 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ 
RewriteRule^https://%1%{REQUEST_URI} [NE,L,R] 
+0

Cette htaccess est toujours dynamique (multi domaines) et pas de domaine est écrit sur un Donc, ne le changez pas et ajoutez le domaine du site en utilisant CNAME de la gestion de l'hébergement et ajoutez vhost pour pointer vers le nouveau dossier local. –

+0

@headmax merci pour la réponse, en fait ma question est de savoir comment bloquer l'URL en double (rediriger vieux => /a.php?slug=vr-promised-us-the-future-too-bad-we-re-stuck-in- le-présent à/vr-promis-nous-le-futur-trop-mauvais-nous-re-coincé-dans-le-présent) – pra021

Répondre

2

Ont ainsi:

Options -MultiViews 
RewriteEngine On  

RewriteCond %{HTTP_HOST} ^www\. [OR] 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ 
RewriteRule^https://%1%{REQUEST_URI} [NE,L,R=301] 

# external redirect to redirect old URL to pretty URL  
RewriteCond %{THE_REQUEST} /a\.php\?slug=([^\s&]+) [NC] 
RewriteRule^/%1? [R=301,L,NE] 

RewriteCond %{THE_REQUEST} /tag\.php\?id=([^\s&]+) [NC] 
RewriteRule^/tag/%1? [R=301,L,NE] 

RewriteRule ^tag/([\w-]+)/?$ tag.php?id=$1 [L,QSA,NC] 

# internal rewrite to forward to actual URL 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([\w-]+)/?$ a.php?slug=$1 [L,QSA] 
+1

merci frère :) – pra021

+0

Édité la réponse. – anubhava