2016-09-16 6 views
2

Sehr einfach, kann mir jemand sagen, den Unterschied zwischen dem folgenden bitte:Unterschied zwischen zwei Schreibregeln

RewriteRule ^sitemap/.*$ /appindex.php [L] 
RewriteRule ^sitemap/?$ /appindex.php [L] 
+0

Warum testen Sie es nicht? – SaidbakR

+1

@ sємsєм Ich habe, aber ich bin gegen eine enge Frist und ich mag den Rat hier. –

+0

Allerdings ist es eine gute Frage. – SaidbakR

Antwort

3

Dies ist eine Frage über reguläre Ausdrücke Notation. Es hat wenig mit der Logik der Rewrite-Regeln selbst zu tun. Beachten Sie, dass es sehr gute Einführungen in reguläre Ausdrücke gibt. Auch wollen Sie eine der Online-regex Dienstprogramme mit den Mustern zu experimentieren verwenden ...


RewriteRule ^sitemap/.*$ /appindex.php [L] 

Dieser entspricht allen Anforderungen an URLs mit der Zeichenkette beginnen sitemap, gefolgt von einem Schrägstrich und einige mehr aber willkürliche Zeichen.

Beispiele hierfür wäre:

  • sitemap/index.xml
  • sitemap/folder/sitemap.xml

RewriteRule ^sitemap/?$ /appindex.php [L] 

Dieser entspricht allen Anforderungen an URLs mit der Zeichenkette beginnen sitemap, gefolgt möglicherweise von ein Schrägstrich und nichts mehr.

Die einzigen passende Beispiele dafür sind offensichtlich:

  • sitemap
  • sitemap/

Hinweis, dass solche Regeln tun nicht betrachten http Parameter get, diese sind auf dieser Ebene nicht relevant, da Sie sind nicht Teil der URL selbst, sondern Argumente. So folgendes tut auch Spiel:

  • sitemap?id=test

Beachten Sie, dass beide Regeln nur dann Sinn machen, wenn sie innerhalb .htaccess Stil-Dateien verwendet. Sie werden nicht arbeiten in der realen HTTP-Server-Host-Konfiguration. Das liegt daran, dass die reale Konfiguration auf absolute Pfade arbeitet, während .htaccess Style-Dateien auf relative Pfade arbeiten, also Pfade ohne führenden Schrägstrich (/sitemap/... gegenüber sitemap/...). Im Allgemeinen sollte man immer bevorzugen, um Rewrite-Regeln innerhalb der realen Host-Konfiguration zu platzieren. .htaccess Stildateien sind notorisch fehleranfällig, schwer zu debuggen und sie wirklich verlangsamen den Server, oft für nichts. Sie sind nur für zwei Situationen vorgesehen: Personen ohne Zugriff auf die Host-Konfiguration (lesen Sie: wirklich günstige Hosting-Provider) und Anwendungen, die ihre eigene Konfiguration dynamisch aktualisieren müssen (was ein Sicherheitsalbtraum ist, also überlegen Sie sich diesen Ansatz zweimal).

+0

Konnten Sie URL-Beispiele in Form von Übereinstimmung hinzufügen und nicht übereinstimmen? – SaidbakR

+1

@ sємsєм Guter Punkt, danke! – arkascha

+0

Danke @arkascha –