Jak přidat 301 Redirect z non www na www pro Wordpress

já mám .htaccess soubor s jedním jednoduchým RewriteRule:

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

Chci mít URL jako http://www.example.com/imprint a přeposlat jej http://www.example.com/?site=imprint.

Toto pravidlo jsem zkontroloval pomocí RewriteRule tester, který mi dal výsledky, kterých chci dosáhnout. Na mém místním vývojovém serveru to také funguje dobře.

Ale na vzdáleném serveru mi adresy URL prostě dají chybu 404. Další jednodušší pravidla pro přepis fungují bez problémů, takže vše musí být nastaveno správně (myslím ..). Problém je v tom, že nemám přístup k žádným protokolům chyb ani ke konfiguracím serveru. Jediné, co mohu udělat, je hádat ...

Může mi někdo říct, jestli s tímto pravidlem není něco v pořádku? Nebo něco jiného, ​​co mohu udělat nebo otestovat, abych to vyřešil? Nebo má někdo představu, co se může na serveru pokazit?

  • 1 Umožňuje vzdálený server přepsat s .htaccess? Je povolen mod_rewrite?
  • To musí být. Nemohu to zkontrolovat v konfiguracích, ale jak jsem řekl, pokud použiji další jednodušší pravidlo, např. přesměrovat každý pagecall na www.google.com to funguje.

Zkuste lomítko před?, Jako

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

Pokud to nefunguje, zkuste přidat [R] po $ 1, takže ve skutečnosti přepíše adresu URL a v pruhu adresy URL prohlížeče uvidíte, kam jde

  • Děkuji mnohokrát. Lomítko funguje jako kouzlo. Bez lomítka a přidání [R] jsem přesměrován na celou cestu souborového systému jako www.example.com/www/hosting/XXX/XXX/websites/example/?site=imprint Můžete mi toto chování vysvětlit? Proč to funguje na jiných serverech, ale ne na tomto? Existuje nějaká konfigurace?
  • jaká jsou 2 serverová prostředí? Jako třeba WAMP vs Linux? Verze Apache stejné? Možná, že jeden má RewriteBase / v .htaccess a druhý ne? Nebo možná jeden z DocumentRoot v httpd.conf (nebo vhosts) obsahuje koncové lomítko na samém konci cesty ke složce, kde jako druhý není? Upřímně jsem se naučil začínat přesměrování URL by mělo vždy začínat / pokud ne úplnou cestou http: //, takže nemohu opravdu mluvit s očekávaným chováním jiných / adres URL, jako jste původně měli, protože je nikdy nepoužívám ...
  • Hm, dobře, mnoho věcí může být příčinou tohoto chování. Jen se snažím zvyknout si vždy psát adresy URL přesměrování s koncovým lomítkem.
  • Tento tutoriál (zejména část 2) mi připadal obzvláště užitečný, když jsem poprvé začal hrát s htaccess, doufejme, že to vy nebo kdokoli, kdo to čte, považuje také za užitečné: corz.org/serv/tricks/htaccess.php

Pracoval pro vás: Charles Robertson | Chcete nás kontaktovat?