2017-02-16 1 views
-2

Fondamentalement, mon lien actuel est:Réécriture d'une URL dans htaccess?

https://www.mysite.co.uk/segment1/segment2/segment3/segment4/segment5/segment6/segment7

Comment puis-je réécrire cette URL pour:

https://www.mysite.co.uk/segment1/segment2/segment3/segment4/segment5/segment6-mystring/segment7

J'ai essayé:

RewriteRule ^\/segment1\/segment2\/(.*)\/(.*)\/(.*)\/(.*)\/(.*)\/(.*) \/segment1\/segment2\/$3\/$4\/$5\/$6-mystring\/$7 [r=301,L] 
+0

double possible de [Conseils pour le débogage .htaccess règles de réécriture] (http://stackoverflow.com/questions/9153262/tips-for-debugging-htaccess- rewrite-rules) –

+0

Je ne suis pas très expérimenté avec htaccess et après avoir lu que je n'ai toujours pas la moindre idée d'où je me trompe, l'info semble solide mais peut-être perdue sur moi à cause de mon expérience, merci. – user2171245

Répondre

1

Pas besoin d'échapper / dans les règles de réécriture et rendre la barre oblique optionnelle commeLes fichiersne correspondent pas en tête /. Aussi, vous pouvez réduire considérablement la capture des groupes dans votre modèle:

RewriteRule ^/?(segment1/segment2/[\w-]+/[\w-]+/[\w-]+/(?![^/]*-mystring)[\w-]+)/([\w-]+)(/.*)?$ /$1-mystring/$2$3 [R=301,L,NC,NE] 
+0

Cela fonctionne presque, merci, il est de répéter la chaîne encore et encore dans l'url si. – user2171245

+0

Par exemple, je reçois maintenant: https://www.mysite.co.uk/segment1/segment2/segment3/segment4/segment5/segment6-mystring-mystring-mystring-mystring-mystring-mystring-mystring-mystring-mystring -mystring-mystring-mystring-mystring-mystring-mystring-mystring-mystring-mystring-mystring-mystring-mystring-mystring-mystring-mystring-mystring-mystring-mystring-mystring/segment7 – user2171245

+0

désolé si vous avez spammé je viens d'essayer de vous taguer dans mon commentaire. La structure de l'URL est exactement la même, mais il est en train de charger la page maintenant, auparavant, je recevais trop d'erreurs de redirections. Juste besoin de couper cette URL pour montrer seulement la chaîne une fois. Merci! – user2171245