/ / Ako presmerovať koreň do podadresára pomocou .htaccess - regex, apache, .htaccess, mod-rewrite, redirect

Ako presmerovať koreň na podadresár pomocou .htaccess - regex, apache, .htaccess, mod-rewrite, redirect

V súčasnosti používam zdieľaný hosting a nemôžem dať svoje súbory mimo priečinka "public_html".

Ak to chcete vyriešiť, chcem prepísať svoj "koreňový" web do podadresára pomocou skriptu nižšie v súbore .htaccess:

RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/subdir/
RewriteRule ^(.*)$ /subdir/$1

Čo funguje skvele, s výnimkou, keď som sa pohyboval www.example.com/subdir/, Táto adresa URL nie je presmerovaná nikde, jednoducho sa zobrazí podadresár. Toto je problém pre relatívne adresy URL a podobne.

Existuje spôsob, ako pokračovať v prepísaní môjho koreňa na podadresár a súčasne aj pri prepisovaní www.example.com/subdir/ na www.example.com?

odpovede:

1 pre odpoveď č. 1

Toto pravidlo môžete použiť v koreňovom .htaccess:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/subdir/ [NC]
RewriteRule ^(.*)$ subdir/$1 [L]

A použite toto pravidlo v /subdir/.htaccess:

RewriteEngine On
RewriteBase /subdir/

RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{THE_REQUEST} /subdir/(S*)s
RewriteRule ^ /%1? [R=302,L,NE]