Sådan tilføjes 301 omdirigering fra ikke www til www til Wordpress

jeg har en .htaccess fil med en enkel RewriteRule:

RewriteEngine on RewriteRule ^([A-Za-z0-9-]+)$ ?site=$1 

Jeg vil gerne have en URL som http://www.example.com/imprint og videresende det til http://www.example.com/?site=imprint.

Jeg tjekkede denne regel med en RewriteRule testeren, der gav mig de resultater, jeg ønsker at opnå. På min lokale udviklingsserver fungerer det også godt.

Men på en ekstern server giver URL'erne mig bare en 404-fejl. Andre mere enkle omskrivningsregler fungerer uden problemer, så alt skal være konfigureret korrekt (jeg tror ..). Problemet er, at jeg ikke har adgang til nogen fejllogfiler eller serverkonfigurationer. Så det eneste jeg kan gøre er at gætte ...

Kan nogen fortælle mig, om der er noget galt med denne regel? Eller noget andet jeg kan gøre eller teste for at løse dette? Eller har nogen en idé om, hvad der kan være galt på serveren?

  • 1 Tillader fjernserveren tilsidesættelse af .htaccess? Er mod_rewrite aktiveret?
  • Det må være. Jeg kan ikke kontrollere det i konfigurationerne, men som jeg sagde, hvis jeg bruger en anden mere simpel regel, f.eks. omdirigere hvert sidekald til www.google.com, det fungerer.

Prøv skråstreg før?, Ligesom

RewriteEngine on RewriteRule ^([A-Za-z0-9-]+)$ /?site=$1 

Hvis det ikke virker, kan du prøve at tilføje [R] efter $ 1, så den faktisk omskriver url'en, og du kan se, hvor den går hen i din browsers url-linje

  • Mange tak. Skråstreg fungerer som en charme. Uden skråstreg og tilføje [R] bliver jeg omdirigeret til hele filsystemstien som www.example.com/www/hosting/XXX/XXX/websites/example/?site=imprint Kan du forklare denne adfærd for mig? Hvorfor fungerer det på andre servere, men ikke på denne? Er der nogen konfiguration for det?
  • hvad er de 2 servermiljøer? Som i ligesom WAMP vs Linux? Apache-versioner det samme? Måske har den ene RewriteBase / i .htaccess, og den anden ikke? Eller måske indeholder en af ​​DocumentRoot i httpd.conf (eller vhosts) en efterfølgende skråstreg i slutningen af ​​mappestien, hvor den anden ikke gør? Ærligt talt lærte jeg at starte omdirigerings-webadresser altid skulle starte med / hvis ikke fuld http: // sti, så jeg kan ikke rigtig tale med den forventede opførsel af ikke / webadresser som du oprindeligt havde, fordi jeg aldrig bruger dem ...
  • Hm ok, mange ting kan være årsagen til denne adfærd. Jeg prøver bare at vænne mig til altid at skrive omdirigerings-URL'erne med et skråstreg.
  • Jeg fandt denne tutorial (især del 2) særlig nyttig, da jeg først begyndte at lege med htaccess, forhåbentlig finder du eller nogen, der læser dette, det også nyttigt: corz.org/serv/tricks/htaccess.php

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