Gibt es eine Möglichkeit, die Unterstützung regulärer Ausdrücke in einer htaccess-Datei zu erkennen?

Gibt es eine Möglichkeit, die Unterstützung regulärer Ausdrücke in einer htaccess-Datei zu erkennen?

Ich verwende die folgende Umschreiberegel, um die gesamte URL an ein PHP-Skript zu übergeben:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*?)$ index.php?rewriteUrl=$1 [QSA,L]

Auf manchen Servern muss ich

RewriteRule ^(.*)$ index.php?rewriteUrl=$1 [QSA,L]

stattdessen (das ?fehlt).

Gibt es eine Möglichkeit, den Server dazu zu bringen, dies automatisch zu handhaben? In Form eines Fallbacks/Try-Catchs oder etwas in der Art?

Antwort1

Wenn Sie die unterschiedlichen Versionsnummern der beiden Server kennen, verwenden Siemod_versionum dies zu tun. Wenn 2.3+ beispielsweise Folgendes verwendet ?:

<IfVersion >= 2.3>
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*?)$ index.php?rewriteUrl=$1 [QSA,L]
</IfVersion>

<IfVersion < 2.3>
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?rewriteUrl=$1 [QSA,L]        
</IfVersion>

VerwendenServerSignaturum die Versionsinformationen an den Client senden zu lassen.

verwandte Informationen