/ / Apache .htaccess RewriteRule nezahŕňajúce podadresár pri presmerovaní non-www na www url - apache, .htaccess, prepisovanie URL

Apache .htaccess RewriteRule nezahŕňa podadresár pri presmerovaní bez www na www url - apache, .htaccess, url-rewriting

Nastavujem pravidlo prepisovania, aby som mohol smerovať domain.com premávka do www.domain.com pomocou nasledujúceho pravidla:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
</IfModule>

Podľa môjho obmedzeného porozumenia $1 v RewriteRule by malo zodpovedať čomukoľvek po domain.com/ a potom byť umiestnený na konci mojej prepísanej adresy URL www.domain.com/.

Napríklad domain.com/abc by sa malo stať www.domain.com/abc.

Je to však nefunguje. Ak prejdem na domain.com/abc potom táto cesta nie je vôbec prepísaná a ja len chápem domain.com/abc bez www.

Urobil som veľa čítania, len aby som zistil, že $1 by sa mal podľa môjho pochopenia o to postarať.

Môže mi niekto vysvetliť, prečo to nefunguje tak, ako si myslím, že by malo byť? Ďakujem.

odpovede:

0 pre odpoveď č. 1

Ukázalo sa, že pretože som používal doplnok Wordpress AND W3 Cache, jednoducho som vložil kód na nesprávne miesto do môjho súboru .htaccess.

Kód by mal byť umiestnený v rámci # BEGIN Wordpress codeblock a pred existujúcimi pravidlami, ktoré Wordpress už má zavedené.

Existujúci kód by mal vyzerať asi takto:

# BEGIN Wordpress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
#END Wordpress

K tomu som pridal svoj pôvodný kód takto:

# BEGIN Wordpress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
#END Wordpress

To opravuje problém, ktorý som popisoval vyššie. Ďakujem komentátorom, že podnietili môj myšlienkový proces.