Witam, W pliku .htaccess w pniu głównym serwera mam przekierowania na podkatalog zgodnie z wytycznymi, które wyczytałem w Pomocy. Code: RewriteEngine On RewriteCond %{HTTP_HOST} ^(www\.)?xxxxx\.pl$ [NC] RewriteCond %{REQUEST_FILENAME} !/yyyyyy/ RewriteRule ^(.*)$ /yyyyyy/$1 [L] Powyższe przekierowanie wpisałem na początku pliku .htaccess 1. Czy reszta linii (po przekierowaniu) jest czytana i ma znaczenie? 2. Czy kolejny plik .htaccess, który znajduje się w folderze yyyyyy, do którego jest przekierowanie też ma znaczenie?
1. Nie - jeśli spełniony jest warunek, wykonuje się przekierowanie, a flaga [L] kończy dalsze wykonywanie pliku 2. Nie mam 100% pewności, ale raczej tak.
1. Flaga [L] last mówi o tym, że w ramach tego .htaccessa dalsze reguły mają nie być wykonywane. Jeśli zatem zostaną spełnione dwa powyższe warunki – zostanie wykonana reguła to na fladze [L] serwer poprzestanie. Mowa jednak tylko o mod_rewrite (czyli to, czym jest objęty RewriteEngine). Jeśli po tej całej ruli z przekierowaniami zastosujesz np. regułę odpowiedzialną za np. dostęp do plików (oder allow deny) to takie inne reguły będą czytane i wykonywane przez serwer. 2. Struktura .htaccess-ów jest kaskadowa. Jeśli przykładowo domena wskazuje na katalog i tam jest .htaccess, który przekierowuje tę domenę na inny katalog, w którym jest kolejny .htaccess z jakimiś regułami to zostaną one przetworzone. Czyli reguła jest wykonywana, następuje przekierowanie i "zabawa" zaczyna się od początku - w "nowej" lokalizacji serwer sprawdza czy jest .htaccess, jeśli jest to przetwarza go i jedzie dalej.