2016-04-01 6 views
0

Ich habe eine funktionierende .htaccess-Datei, die ein angefordertes QR-Code-Bild an ein Skript umleitet, das das Bild generiert. Beim Umleiten liefert es das Unterverzeichnis und die Dateierweiterung von der URL, die ich entfernen möchte, sodass nur die ID-Nummer als Argument übergeben wird..htaccess: Wie überschreibe ich einen Datei-URI, um die Erweiterung und den übergeordneten Ordner in einer Weiterleitung wegzulassen?

Beispiel Anfrage (kein realer Arbeits Link):

http://www.mywebsite.com/qr/access-code/1234567.png

Aktuelle .htaccess-Datei Beispiel:

RewriteEngine On 
RewriteBase /qr/ 

RewriteCond %{REQUEST_URI} "/access-code/" 
RewriteRule ^(.+\.png)$ access-code.php?id=$1 [QSA,L] 

Was es an das Skript sendet:

Zugangscode /1234567.png

Ich möchte nur die Fo llowing an das Skript gesendet werden:

Ich bin derzeit diese Reinigung mit PHP, aber kann ich ändern, um die RewriteRule und/oder RewriteCond es zu bereinigen, bevor es PHP erreicht?

Antwort

1

Versuchen Sie mit folgenden Regex.

Regex:\/(\d+).png$

Erläuterung:

  • Dies wird in der ersten Gruppe entsprechen und erfassen die digits nach einem / Strich erscheinen und vor .png.

wird Ihr Code

sein
RewriteEngine On 
RewriteBase /qr/ 

RewriteCond %{REQUEST_URI} "/access-code/" 
RewriteRule \/(\d+).png$ access-code.php?id=$1 [QSA,L] 

Regex101 Demo

+1

Das hat sehr gut funktioniert. –

+0

@ChristopherStevens: Ich bin froh, dass es getan hat. Wenn Sie Regex-Demo-Version 1 bemerken, dauerte es mehr als 800 Schritte. Aber dieser dauerte ungefähr 30 Schritte. –

+1

Das ist ausgezeichnet! Danke, dass du mir den Weg gezeigt hast und ein großartiges Werkzeug referenziert hast. Ich werde viel mit der regulären Website arbeiten. –

Verwandte Themen