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-Anfragen: 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]
.htaccess
mod-rewrite
url-rewriting
Kelvin
quelle
quelle
[^/]
einem einfachen Raum vergessen, wenn dort nicht erlaubt (es muss mit maskiert werden\<space>
).Antworten:
Versuchen Sie diese Regel vor Ihren anderen Regeln:
Dadurch wird der Umschreibvorgang beendet.
quelle
($|/)
sollte beide Fälle behandeln.RewriteCond
benötigt immer einRewriteRule
, an das es angehängt ist. Und das Hinzufügen dieser Bedingung als negiertRewriteCond
zu jederRewriteRule
kann ziemlich sperrig sein, eine einzelneRewriteRule
als Ausgang über denen, die in einem solchen Fall ignoriert werden sollten, ist eleganter.Sie können auch eine .htaccess-Datei mit enthalten
In den Ordnern, die Sie vom Umschreiben ausschließen möchten (gemäß den Regeln in einer .htaccess-Datei, die sich weiter oben im Baum befindet). Einfach aber effektiv.
quelle
AllowOverride
auf etwas anderes alsNone
in der Apache-Konfiguration) wird Apache gezwungen, bei jeder Anforderung nach .htaccess zu suchen. Wenn Sie also eine stark frequentierte Website / einen Webserver haben, kann der Zugriff auf das Dateisystem / die Festplatte einen negativen Einfluss auf die Leistung haben ...Fügen Sie eine Bedingung hinzu, um nach dem Administratorverzeichnis zu suchen.
quelle
Wenn Sie ein bestimmtes Verzeichnis aus der Regel entfernen möchten (dh, Sie möchten das Verzeichnis foo entfernen ), können Sie Folgendes verwenden:
Die oben beschriebene rewriteRule schreibt alle Anfragen in /index.php um, mit Ausnahme der Anfragen nach / foo / .
Um alle vorhandenen Verzeichnisse auszuschließen, müssen Sie die folgende Bedingung über Ihrer Regel verwenden:
die folgende Regel
schreibt alles (außer Verzeichnisse ) in /index.php um .
quelle
Wir haben die folgende mod_rewrite-Regel verwendet:
Dadurch wird (permanent mit einer 301-Weiterleitung) der gesamte Datenverkehr auf die Site an http://www.newdomain.com umgeleitet , mit Ausnahme von Anforderungen an Ressourcen in den Verzeichnissen / test und / my-folder. Wir übertragen den Benutzer auf die genaue Ressource, die er angefordert hat, indem wir die Erfassungsgruppe (. *) Verwenden und dann 1 US-Dollar in die neue URL aufnehmen. Achten Sie auf die Räume.
quelle
quelle