.htaccess mod rewrite - jak wykluczyć katalog z reguły rewrite
Mam 8 linijek reguł przepisywania w moim .plik htaccess. Muszę wykluczyć dwa fizyczne katalogi na moim serwerze z tych reguł, aby mogły stać się dostępne. Na razie wszystkie żądania są wysyłane do indeksu.plik php.
Katalogi do wykluczenia: "admin" i "user".
Więc żądania http: http://www.domain.com/admin/ nie powinny być przekazywane do indeksu.plik php.
ErrorDocument 404 /index.php?mod=error404
Options FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
RewriteRule ^([^/] )/([^/] )\.html$ index.php?lang=$1&mod=$2 [L]
RewriteRule ^([^/] )/$ index.php?lang=$1&mod=home [L]
6 answers
Wypróbuj tę zasadę przed innymi zasadami:
RewriteRule ^(admin|user)($|/) - [L]
To zakończy proces przepisywania.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-04 17:51:12
To, co można również zrobić, to umieścić .plik htaccess zawierający
RewriteEngine Off
W folderach, które chcesz wykluczyć z przepisywania (według zasad w .plik htaccess, który jest wyżej w drzewie). Proste, ale skuteczne.
Dodaj warunek do sprawdzenia katalogu admina, coś w stylu:
RewriteCond %{REQUEST_URI} !^/?(admin|user)/
RewriteRule ^([^/] )/([^/] )\.html$ index.php?lang=$1&mod=$2 [L]
RewriteCond %{REQUEST_URI} !^/?(admin|user)/
RewriteRule ^([^/] )/$ index.php?lang=$1&mod=home [L]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-04 17:48:15
RewriteEngine On
RewriteRule ^(wordpress)($|/) - [L]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-27 16:47:12
Użyliśmy następującej reguły mod_rewrite:
RewriteEngine on
RewriteCond % {REQUEST_URI} !^ / test /
RewriteCond % {REQUEST_URI} !^ / my-folder /
RewriteRule (.* ) http://www.newdomain.com / $1 [R=301,L]
To przekierowuje (na stałe z przekierowaniem 301) cały ruch na stronę do http://www.newdomain.com , z wyjątkiem zapytań do zasobów w katalogach / test i / my-folder. Przenosimy użytkownika do dokładnego zasobu zażądali za pomocą (.* ) przechwyć grupę, a następnie dodaj $1 do nowego adresu URL. Uważaj na przestrzenie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-26 14:10:43
Jeśli chcesz usunąć konkretny katalog z reguły (co oznacza, że chcesz usunąć katalog foo), możesz użyć :
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/foo/$
RewriteRule !index\.php$ /index.php [L]
RewriteRule powyżej przepisze wszystkie żądania do / index.php z wyłączeniem żądań dla / foo / .
Aby wykluczyć wszystkie istniejące directries, musisz użyć następującego warunku powyżej Twojej reguły:
RewriteCond %{REQUEST_FILENAME} !-d
Następująca reguła
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !index\.php$ /index.php [L]
Przepisuje wszystko (z wyjątkiem directries) na /indeks.php .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-05 17:21:07