wake-up-neo.com

.htaccess mod_rewrite - So schließen Sie das Verzeichnis von der Überschreibungsregel aus

Ich habe 8 Zeilen mit Umschreiberegeln in meiner .htaccess-Datei. Ich muss zwei physische Verzeichnisse auf meinem Server von diesen Regeln ausschließen, damit auf sie zugegriffen werden kann. Im Moment werden alle Anfragen an die Datei index.php gesendet.

Auszuschließende Verzeichnisse: "admin" und "user".

Daher sollten http-Anforderungen: http://www.domain.com/admin/ nicht an die Datei index.php übergeben werden.

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]
134
Kelvin

Probieren Sie diese Regel vor Ihren anderen Regeln aus:

RewriteRule ^(admin|user)($|/) - [L]

Dies beendet den Umschreibevorgang.

268
Gumbo

Sie können auch eine .htaccess-Datei einfügen, die Folgendes enthält

RewriteEngine Off

In den Ordnern, die Sie vom erneuten Schreiben ausschließen möchten (gemäß den Regeln in einer .htaccess-Datei, die sich weiter oben in der Baumstruktur befindet). Einfach aber effektiv.

100
user1694077

füge eine Bedingung hinzu, um nach dem Admin-Verzeichnis zu suchen, wie zum Beispiel:

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]
22
Rob

Wir haben die folgende mod_rewrite-Regel verwendet:

RewriteEngine ein
RewriteCond% {REQUEST_URI}! ^/Test /
RewriteCond% {REQUEST_URI}! ^/My-folder /
RewriteRule (. *) http://www.newdomain.com/ $ 1 [R = 301, L]

Dadurch wird der gesamte Datenverkehr auf der Site (permanent mit einer 301-Umleitung) an http://www.newdomain.com weitergeleitet, mit Ausnahme von Anforderungen an Ressourcen in den Verzeichnissen/test und/my-folder. Wir übertragen den Benutzer mithilfe der Erfassungsgruppe (. *) Auf die von ihm angeforderte Ressource und fügen dann $ 1 in die neue URL ein. Pass auf die Räume auf.

5
Camilo Tilaguy

Wenn Sie ein bestimmtes Verzeichnis aus der Regel entfernen möchten (dh, Sie möchten das Verzeichnis foo entfernen), können Sie Folgendes verwenden:

RewriteEngine on

RewriteCond %{REQUEST_URI} !^/foo/$
RewriteRule !index\.php$ /index.php [L]

Die obige rewriteRule schreibt alle Requests nach / index.php um, ausgenommen Requests nach / foo /.

Um alle vorhandenen Direktiven auszuschließen, müssen Sie die folgende Bedingung über Ihrer Regel verwenden:

RewriteCond %{REQUEST_FILENAME} !-d

die folgende Regel

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !index\.php$ /index.php [L]

schreibt alles (außer directries) nach / index.php.

4
starkeen
RewriteEngine On

RewriteRule ^(wordpress)($|/) - [L]
4
user3578691