/ / Získanie časti URI po presmerovaní .htaccess - php, .htaccess, mod-rewrite, redirect

Prístup k URI po .htaccess redirect - php, .htaccess, mod-rewrite, redirect

Som nový v .htaccess a hľadal som dni, ale nenašiel som riešenie, ktoré by vyhovovalo mojej situácii.

Takže v podstate to, čo chcem, je použiť.htaccess presmeruje žiadosti do podpriečinka bez toho, aby sa podpriečinok zobrazil v paneli s adresou prehliadača. S nasledujúcim súborom .htaccess by som to mohol dosiahnuť. (nezabudnite, že je to na lokálnom počítači namiesto skutočného webhostingu)

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subfolder/$1
RewriteRule ^(/.*)?$ /subfolder/index.php?rt=$1 [L,QSA]

Všimnite si, že mám "rt = $ 1", aby som získal informácie o smerovaní cesty z poľa $ _GET []. Vyzerá to však, že prepísaním adresy URL došlo k prepísaniu, ktoré potom pokazilo moju funkciu smerovača.

Napríklad cieľová adresa URL pre funkciu .ajax je „index / survey_update“, čo by malo viesť k indexController-> survey_update ().

Ale s presmerovaním sa teraz cesta stáva
/ Podpriečinky / podpriečinky / index / survey_update / survey_update.
A router už nedokáže rozlíšiť správny radič a vykonať akciu.

Môže mi niekto dať vedieť, prečo vyzerá adresa URL vtipne(duplikuje sa podpriečinok a posledná sekcia sa duplikuje) a existuje spôsob, ako extrahovať správnu časť adresy URL (t. j. index / prieskum_update v tomto prípade) zmenou konfigurácie .htaccess? Vďaka.

odpovede:

1 pre odpoveď č. 1

Môžete použiť iba toto pravidlo:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*?)/?$ /subfolder/index.php?rt=$1 [L,QSA]

Zapamätaj si to RewriteCond je použiteľné iba pre nasledujúce RewriteRule.