Pour créer un nouveau site, je dois restructurer certains des liens et redirect les anciens liens vers les nouveaux liens. Je n’en ai que quelques-uns et sont comme suit:
about|what-we-do => about-us contact => get-in-touch our-work|projects => featured-work
Je veux aussi pouvoir conserver tout ce qu’ils mettent après ces liens. Par exemple, je voudrais que les redirections soient comme ceci:
our-work/web/project-title => featured-work/web/project-title
C’est ce que j’ai dans mon fichier htaccess
à ce stade, ce qui ne fonctionne pas.
RewriteRule ^(about|what-we-do)(/)? /about-us/$1 [QSA,NC,L,R=301] RewriteRule ^contact(/)? /get-in-touch/$1 [QSA,NC,L,R=301] RewriteRule ^(our-work|projects)(/)? /featured-work/$1 [QSA,NC,L,R=301] RewriteRule ^about-us(/)?$ /pg.about.php [QSA,NC,L] RewriteRule ^get-in-touch(/)?$ /pg.contact.php [QSA,NC,L] RewriteRule ^featured-work(/)?$ /pg.projects.php [QSA,NC,L] RewriteRule ^hello(/)?$ /pg.hello.php [QSA,NC,L]
Si j’essaie de visiter quelque chose comme /about
je suis redirigé vers /about-us/about/
. Je ne suis pas bien familiarisé avec htaccess. Donc, si quelqu’un est capable de m’aider, ce serait très apprécié. Je vais continuer à le twigr. Merci d’avance!
Vos règles ne capturent pas la partie URI après la première barre oblique. Vous pouvez utiliser:
RewriteEngine On RewriteRule ^(?:about|what-we-do)(/.*)?$ /about-us$1 [NC,L,R=301] RewriteRule ^contact(/.*)?$ /get-in-touch$1 [NC,L,R=301] RewriteRule ^(?:our-work|projects)(/.*)?$ /featured-work$1 [NC,L,R=301] RewriteRule ^about-us/?$ /pg.about.php [NC,L] RewriteRule ^get-in-touch/?$ /pg.contact.php [NC,L] RewriteRule ^featured-work/?$ /pg.projects.php [NC,L] RewriteRule ^hello/?$ /pg.hello.php [NC,L]