2013-07-30 2 views
-1

Je voudrais rediriger toutes les URL inconnus par exemple comme ceci:Comment rediriger toutes les URL longues vers leurs versions plus courtes?

http://www.website.com/title/.../... 

à aimer:

http://www.website.com/title 

J'ai essayé un fichier .htaccess qui ressemble à cela, mais il ne semble pas fonctionner :

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} ^(.*)/.*$ 
RewriteRule ^.*/(.*)$ /$1 [R=301] 

Que manque-t-il?

+0

Il est pas très clair ce que vous essayez de faire du tout. Que veut dire "tout appeler plus longtemps"? Quelles URL voulez-vous voir un navigateur vs quelles URL pointent réellement vers les ressources désirées? –

+0

J'ai beaucoup d'URL longues générées par CMS indexées par les moteurs de recherche. Je redirigerais toutes ces longues URL vers la version courte standard de l'URL que j'utilise. – user2635661

Répondre

0

Étant donné que vous voulez que le premier titre, cela devrait fonctionner:

Options +FollowSymLinks -MultiViews 

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)/.*$ /$1 [R=301,L] 

Pour le index.php:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/index\.php [NC] 
RewriteRule^/%1 [R=302,L] 
+0

Merci Prix ça fonctionne exactement ce dont j'ai besoin. Seulement – user2635661

+0

Merci Prix, c'est génial! cela fonctionne exactement j'ai besoin de 99%. Seul http: //www.website.com/index.php/.../... n'est pas redirigé vers http://www.website.com/index.php. Je ne sais pas pourquoi, je vais essayer d'explorer d'autres règles dans mon .htaccess. – user2635661

+0

Parce que index.php est un fichier valide et 'RewriteCond% {REQUEST_FILENAME}! -f' empêchera la redirection de fichiers valides, vous aurez besoin d'une règle différente pour cela. – Prix

Questions connexes