Přesměrovat doménu do jiné domény - cPanel .htaccess

Nastavil jsem přesměrování .htaccess konsolidovat example.com na www.example.com provoz na našem serveru Apache.

Vypadá takto:

Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^centerline\.net$ [NC] RewriteRule ^(.*)$ http://www.centerline.net/$1 [R=301,L] 

Funguje podle očekávání, s výjimkou blogu.

Pokud půjdu na http://www.centerline.net/blog„Mám blog v pořádku. Pokud půjdu na http://centerline.net/blog, přesměruje na domovskou stránku (což je výchozí akce 404).

Snažil jsem se komentovat tyto dva řádky, abych se spojil centerline.net na www.centerline.neta stále se nemohu dostat na blog prostřednictvím centerline.net/blog.

V tom není nic jiného .htaccess související s URL blogu. Pro blog existuje několik řádků, které Wordpress vložil do souboru .htaccess, ale jejich komentování nemá žádný rozdíl. V případě, že tento kód je:

# BEGIN WordPress  RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]  # END WordPress 

Nějaké nápady, kde jinde hledat? Nebo něco, co mi chybí?

  • 2 Přesměrování na domovskou stránku není opravdu dobrá akce 404. Matou uživatele a nedává jim šanci vám říct, co je rozbité.
  • Celkem souhlasím. To nebylo moje volání. Ale to není problém.
  • Dočasně jsem přejmenoval soubor .htaccess a stále mám stejné chování z / blog / Takže jsem vyloučil, že problém způsobuje kořenový adresář .htaccess. Kde jinde bych měl hledat?

Tady je relevantní úryvek z mého .htaccess, který pro mě funguje. Jdu opačným směrem od vás (od http://www.vyznev.net na http://vyznev.net), ale princip by měl být stejný:

# # URL rewrite engine setup # RewriteEngine On RewriteBase / # # Append directory slash (because Apache seems to prepend 'www.') # RewriteCond /www/asiakkaat/vyznev/public_html/$1 -d RewriteRule ^(.*[^/])$ http://vyznev.net/$1/ [NS,L,R=permanent] # # Canonicalize host name # RewriteCond %{HTTP_HOST} !^vyznev\.net$ RewriteCond %{HTTP_HOST} ^(www\.)?vyznev\.net$ [NC] RewriteRule ^(.*) http://vyznev.net/$1 [NS,L,R=permanent] 

První RewriteRule je tam jen proto, aby se zabránilo dvojím přesměrováním adresářových URL bez koncové lomítko; pravděpodobně to nebudete potřebovat, ale pro případ jsem to zahrnul.

Abych byl upřímný, nemám tušení proč kód ve vaší otázce by neměl fungovat stejně dobře jako můj. Ale při neexistenci lepší odpovědi jsem usoudil, že mít známý funkční příklad může přinejmenším pomoci.

Našel problém. Kořenový soubor měl soubor .htaccess. Všechno tam bylo v pořádku.

Podadresář / blog / měl ale také soubor .htaccess s některými duplicitními pravidly. Jakmile jsem tento soubor .htaccess přejmenoval (pro všechny účely a účely jej smazal), http://centerline.net/blog přesměrován na http://www.centerline.net/blog bez problému.

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