Page 1 of 1

RewriteRule: Punkt zum Muster hinzufügen

Posted: Fri 21. Jan 2022, 04:31
by PadMan
Hallo,

ich habe folgende RewriteRule:

Code: Select all

RewriteRule ^([a-zA-Z-_]+)/?$ index.php?parameter=$1 [NC,L]
Übergabe mit

Code: Select all

domain.tld/wert
klappt ja, nur wenn ich was mit einem Punkt brauche

Code: Select all

domain.tld/bei.spiel
dann klappt es nicht. Wenn ich allerdings einen Punkt in

Code: Select all

[a-zA-Z-._]
einfüge, egal welche Position, dann klappt kein Parameter mehr, wie könnte der Punkt ebenfalls verwendet werden?

Im Netz fand ich leider keine Lösung.

Vielen Dank.

Re: RewriteRule: Punkt zum Muster hinzufügen

Posted: Fri 21. Jan 2022, 10:54
by 24unix
Probier mal, den Punkt zu escapen (\.).
Ansonsten steht er ja als Platzhalter.

Re: RewriteRule: Punkt zum Muster hinzufügen

Posted: Sat 22. Jan 2022, 02:54
by PadMan
24unix wrote: Fri 21. Jan 2022, 10:54 Probier mal, den Punkt zu escapen (\.).
Hatte ich schon, aber dann werden die angehängten Parameter wieder nicht mehr ausgewertet, sind funktionslos.
Ansonsten steht er ja als Platzhalter.
Ich weiß, und einige Beispiele die ich im Netz fand, enthielten ja auch einen Punkt 🤔

Der Gedanke zu dieser Sache ist, dass die URL etwas "hübscher"und die Eingaben im CLI auch kürzer sind ;)

Beispiel wäre dies hier (Wunsch mit Punkt)

Code: Select all

curl beispieladresse.tld/para.meter
:lol:

Re: RewriteRule: Punkt zum Muster hinzufügen

Posted: Sat 22. Jan 2022, 10:19
by 24unix
Für meine API (viewtopic.php?f=16&t=11109) habe ich im Prinzip die .htaccess von Symfony genommen:

Code: Select all

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$
    RewriteRule .* - [E=BASE:%1]
    RewriteCond %{HTTP:Authorization} .+
    RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]
    RewriteCond %{ENV:REDIRECT_STATUS} =""
    RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ %{ENV:BASE}/index.php [L]
</IfModule>
Die reicht den kompletten Request an die index.php, verändert nicht die URL im Browser und ich kann ganz bequem den Pfad auswerten.

Kommt auch mit einem Punkt klar.