Verwenden Sie keine .htaccessDateien

Verwenden Sie keine .htaccessDateien

Ich versuche, eine soziale Plattform wie Instagram oder Facebook zu erstellen und möchte Benutzern Benutzernamen wie examplesite.com/usernamehere in der URL anzeigen. Ich habe recherchiert, wie das geht, und herausgefunden, dass es mit htaccess-Rewrite-Codes gemacht wird. Ich habe einen Code

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ user.php?url=$1 [QSA,L]

Es funktioniert im Allgemeinen, aber wenn ich beispielsweise auf examplesite.com/login oder die Seite „register“ gehen möchte, denkt rewriterules, dass das Wort „login“ oder „register“ ein Benutzername ist und öffnet es nie. Die Ordner müssen geöffnet sein und auch Ordner mit CSS, SCSS, JS, IMG usw. auf meinem Server müssen als Benutzername verwendet werden, also wenn jemand Wörter mit examplesite.com/css, img oder js usw. in die URL schreibt, sollten keine CSS-, IMG- oder JS-Dateien geöffnet werden.

Entschuldigen Sie mein Englisch. Vielen Dank an alle! <3

Antwort1

Eine Reihe verschiedener Dinge:

Verwenden Sie keine .htaccessDateien

Es gibt zahlreiche gut gemeinte Beispiele für Code in .htaccessDateien, der dann immer wieder kopiert wird von/fürCargo-KultSystemadministratoren das sollte stattdessen das Lesen des eigentlichen Handbuchs sein.

Aus:https://httpd.apache.org/docs/2.4/howto/htaccess.html

Im Allgemeinen sollten Sie .htaccessDateien nur verwenden, wenn Sie keinen Zugriff auf die Hauptkonfigurationsdatei des Servers haben. Es gibt beispielsweise ein weit verbreitetes Missverständnis, dass die Benutzerauthentifizierung immer in .htaccess-Dateien erfolgen sollte, und in den letzten Jahrenein weiteres Missverständnis, dass mod_rewrite-Direktivenmussgehe in .htaccessDateien.Dies ist einfach nicht der Fall.
...
Im Fall von RewriteRule-Direktiven im .htaccessKontextDiese regulären Ausdrücke müssen bei jeder Anforderung an das Verzeichnis neu kompiliert werden, während sie im Kontext der Hauptserverkonfiguration einmal kompiliert und zwischengespeichert werden.Darüber hinaus sind die Regeln selbst komplizierter, da man die Einschränkungen umgehen muss, die mit dem Kontext pro Verzeichnis und mod_rewrite einhergehen. Konsultieren Sie dieAnleitung zum Umschreiben für weitere Einzelheiten zu diesem Thema.

Zweite:

Sie haben bereits einige Verzeichnisnamen erwähnt, die von der example.com/[user-alias]Zuordnung ausgeschlossen werden sollten.

Vergessen Sie nicht, auf Ihrer Anmeldeseite auch zu verhindern, dass Benutzer diese Verzeichnisnamen (und andere Namen) absichtlich als Benutzeralias auswählen.

Zuletzt

RewriteCond-Richtlinien werden verwendet, um die Arten von Anfragen einzuschränken, die Folgendem unterliegen RewriteRule.

In Ihrer Konfiguration heißt es derzeit in „einfachem“ Englisch: Wenden Sie Folgendes nicht an, RewriteRulewenn eine vorhandene Datei oder ein vorhandenes Verzeichnis mit demselben Namen wie die Dateinamenkomponente aus der Anforderung vorhanden ist.

Sie können einfach zusätzliche Bedingungen mit zusätzlichen RewriteCondZeilen hinzufügen, zum Beispiel:

RewriteCond %{REQUEST_FILENAME} !"login"

sollte ausschließenexample.com/login

verwandte Informationen