Ich habe gerade die letzten 10 Stunden meines Lebens damit verbracht und drehe mich im Kreis, deshalb hoffe ich, dass mir vielleicht jemand helfen kann.
Ich möchte, dass eine bestimmte URL wie folgt geladen wird:
Wenn eine URL in einem solchen Format eintrifft, möchte ich sie so umschreiben, dass sie folgendermaßen auf dem Server eintrifft:
http://example.com/generate.php?f=2011/image.png&attribute=small
Auf Grundlage der oben genannten Ausführungen habe ich eine zweifache Frage:
- Wie kann ich die URL in htaccess umschreiben, um meine oben genannten Anforderungen zu erfüllen?
- Wenn die ursprüngliche URL den Abfragezeichenfolgenparameter für das Attribut nicht hatte, wie kann ich dann sicherstellen, dass das Attribut falsch/leer/usw. ist, wenn es den Server über htaccess erreicht?
Antwort1
RewriteEngine On
# If it's not an existing file...
RewriteCond %{REQUEST_FILENAME} !-f
# ...and it's not an existing directory...
RewriteCond %{REQUEST_FILENAME} !-d
# ...and it starts with "f/" then rewrite it to generate.php
RewriteRule ^f/(.*)$ generate.php?f=$1 [L,QSA]
Die beiden RewriteCond
können weggelassen werden. Weitere Informationen:
Antwort2
RewriteEngine On
RewriteRule ^([a-z]+)/([0-9]+)/image.png?attribute=small$ generate.php?f=$2/image.png&attribute=small&%{QUERY_STRING} [L]
Antwort3
Hier ist einer, der mehr Chancen hat, zu funktionieren:
RewriteEngine On
# If it's not an existing file...
RewriteCond %{REQUEST_FILENAME} !-f
# ...and it's not an existing directory...
RewriteCond %{REQUEST_FILENAME} !-d
# ...and it starts with "f/" then rewrite it to generate.php
RewriteRule ^([a-z]+)/([0-9]+)/image\.png$ /generate.php?f=$1 [QSA,L]
Bitte sagen Sie mir, ob es funktioniert