2011-06-18 4 views
1

Travailler sur les redirections pour ma page. J'ai une liste de toutes les anciennes et nouvelles URL.301 rediriger le fichier pour nettoyer l'URL

Les anciens urls sont /directory/subdirectory/file.php

Les nouvelles urls sont urls propres

/répertoire/sous-répertoire/fichier/

Quelques nouvelles urls correspondent aux anciens urls sans ".php" tandis que d'autres ne le font pas.

Une page Web a suggéré:

RedirectMatch 301 ^/sales/products/item$ /products/item-name/ 

Mais serait la suivante me donner une boucle de redirection?

RedirectMatch 301 ^/privacy-policy$ /privacy-policy/ 

Je ne l'ai pas encore essayé, mais j'espère ne pas avoir d'ennuis.

Répondre

0

L'utilisation du mod_rewrite d'Apache - ajoutez ces lignes dans votre fichier .htaccess:

# Activate Rewrite Engine 
RewriteEngine On 

# redirect *.php to "nice" url 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^(.*)\.php$ $1/ [R=301,QSA] 

# process "nice" urls by looking for appropriate .php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/$ $1.php [L,QSA] 

Ces règles feront 2 choses:

1) redirect (301) * .php à urls "nice": directory/subdirectory/file.php deviendra directory/subdirectory/file/

2) sert correctement ces "gentils" urls, par exemple directory/subdirectory/file/ sera traitée comme directory/subdirectory/file.php.

P.S. Si redirection ne fonctionne pas (peut se produire parfois en fonction de la configuration) essayez d'ajouter barre oblique avant 1 $ (par exemple /$1)

+0

Merci, mais qu'en est pour les pages qui ont un nom d'URL? J'ai d'anciennes pages dans /directory/subdirectory/file.php qui doivent être redirigées vers/new-url-name/ – dardub

+0

Il y a plusieurs façons de le faire. Le plus simple (peut-être, cela dépend des détails) serait de créer plus de règles de réécriture spécifiquement pour ces URL. Pouvez-vous donner quelques exemples s'il vous plaît (de => à) ainsi que le nombre approximatif de ces redirections. – LazyOne