• This forum has a zero tolerance policy regarding spam. If you register here to publish advertising, your user account will be deleted without further questions.

Variablen in .htaccess

xamppgast

New Member
Hi,
ich wollte mich etwas in .htaccess einarbeiten, insbesondere in die Erstellung von eigenen Variablen
ich habe folgende daher Zeilen in der .htaccess:
PHP:
RewriteEngine On
RewriteCond %{SCRIPT_NAME} ^(\/.+)(\/.+)(\/.+)\.php
RewriteRule ^(.*)$ - [E=P1:%1,E=P2:%2,E=P3:%3]

Der Wert des SCRIPT_NAME ist /Archiv/Protokolle/p2202.php

Leider wird gemeldet
"undefined index: P1 in ...."
"undefined index: P2 in ...."
"undefined index: P3 in ...."

Was ist da falsch?
 
Grob auf den 1. Blick:
https://httpd.apache.org/docs/current/rewrite/flags.html#introduction
Flags that alter metadata associated with the request (T=, H=, E=) have no affect in per-directory and htaccess context, when a substitution (other than '-') is performed during the same round of rewrite processing.

... keine Garantie, nur zwischen Tür und Angel.


Bzw - "wo" wird der Fehler gemeldet? Im PHP-Script, im Fehler-Log des Servers, ...?
 
Was zeigt denn phpinfo() unter Server API?
Server API Apache 2.0 Handler

Die PHP-Version: PHP Version 7.2.3
phpinfo() liefert weiterhin:
Unter Apache Environment: SCRIPT_NAME = /Archiv/Protokolle/p2202.php
Unter PHP Variables: $_SERVER['SCRIPT_NAME'] = /Archiv/Protokolle/p2202.php
 
Last edited by a moderator:
Lerne doch endlich mal die Doku zu lesen, das habe ich Dir in den letzten zehn Jahren schon mehrfach gesagt...
 
... und Du, JoeUser, solltest nicht immer nur direkt reingrätschen und irgendwas behauten, was Dir in den Kram passt sondern auch mal den kompletten Thread lesen. SCRIPT_NAME will er weder verarbeiten noch sonst irgendwas damit tun.

btw - phpinfo() gibt ein SCRIPT_NAME aus. Ist halt keine Apache-Server-Variabale sondern eine im php - aber das ist für das Problem des TE ja auch nicht relevant.
 
SCRIPT_NAME gibt es nicht und kann daher auch nicht gematched werden:]
Hi Joe,
würdest Du auf die Idee kommen und in der Doku nachlesen, ob es einen Namen gibt, wenn dir phpinfo() den Namen mit Inhalt anzeigt? - ich nicht!
Und was gilt nun? Die Doku oder die mir angezeigten Daten?
 

Attachments

  • Anl.jpg
    Anl.jpg
    27.8 KB · Views: 202
Nicht alle Variablen stehen zu jedem Zeitpunkt in Apache zur Verfügung. IIRC wird die SCRIPT_NAME erst irgendwann nach erfolgten Rewrite-Regeln mit einem Wert gefüllt, so dass die Variable in PHP verfügbar ist, aber halt noch nicht in htaccess-Dateien.
 
@alle Helfer:
Kann ich nun den vorhandenen SCRIPT_NAME verwenden?
Er wird ja durch phpinfo() im gleichen Block angezeigt wie z.B. QUERY_STRING, REMOTE_ADRESS u.a. Variablen, die man in .htaccess ansprechen kann.
 
Back
Top