Jeg besluttede at konvertere alle mine dynamiske sider til statiske sider URL'er. Jeg plejede at have "/contactUS.php", og nu vil jeg have siden til at blive vist som "/ contact-us".

Jeg plejede at følge regel n .htaccess:

RewriteRule ^contact-us contactUS.php [NC,L] 

Det hele fungerer fint, men problemet er, at jeg vil forhindre adgang til "/contUS.php" for at undgå duplikatindhold. Selvfølgelig tilføjer følgende regel:

RewriteRule ^contactUS.php contact-us [NC,L] 

skaber en uendelig løkke.Hvad er den bedste måde at nå målet på, også under hensyntagen til SEO?


Redigere:

Dette forårsager en uendelig løkke:

RewriteRule ^contact-us contactUS.php [NC,L] RewriteRule ^contactUS.php contact-us [NC,R=301] 

  • Joel: se RewriteCond Jeg tilføjede.

Omskriv kontakt-os som contactUS.php.

Omdiriger contactUS.php til contact-us.

Redigere:

Omdirigeringer og omskrivninger er 2 forskellige ting. I en omdirigering sker URL-ændringen på klientsiden. I en omskrivning sker URL-ændringen udelukkende på serversiden. Dvs.

Omdiriger

Client: GET /foo Server: Location: /bar Client: GET /bar Server: [/bar] 

Omskriv

Client: GET /foo (Server: /foo --> / bar) Server: [/ bar]  ?> var13 ->

Så hvis du opretter ovenstående regler for omskrivning og omdirigering, vil klienten altid navigere til <?php /contact-us, mens serveren altid vil tjene op /contactUS.php.

Rediger2:

Beklager, jeg glemte at nævne, at mod_rewrite anvender omskrivningsregler til interne anmodninger såvel som klientanmodninger. Så du skal tilføje en omskrivningsbetingelse til omdirigering for at forhindre dette:

RewriteRule ^contact-us$ contactUS.php [L] RewriteCond %{ENV:REDIRECT_STATUS} !=200 RewriteRule ^contactUS.php$ contact-us [R=301] 
  • Dette medfører en uendelig løkke .:
  • Når du prøver RewriteRule ^ contact-us contactUS.php [NC, L], RewriteRule ^ contactUS.php contact-us [NC, R = 301]
  • En omdirigering er ikke det samme som en omskrivning ... Dette vil ikke forårsage en uendelig løkke.
  • Jeg redigerede spørgsmålet med den kode, der forårsager omdirigeringssløjfen (jeg får fejlen "Denne webside har en omdirigeringssløjfe."). Hvad er der galt med den kode?

arbejdet for dig: Charles Robertson | Ønsker du at kontakte os?

nyttige oplysninger