htaccess ファイルで正規表現のサポートを検出する方法はありますか?

htaccess ファイルで正規表現のサポートを検出する方法はありますか?

次の書き換えルールを使用して、URL 全体を PHP スクリプトに渡します。

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

一部のサーバーでは、

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

代わりに( が?欠落しています)。

サーバーがこれを自動的に処理する方法はありますか? fallback/try-catch などの形式で?

答え1

2つのサーバーのバージョン番号が異なることがわかっている場合は、mod_バージョンこれを実行するには、次のようにします。たとえば、2.3 以降では、次のようになります?

<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>

使用サーバー署名バージョン情報をクライアントに送信します。

関連情報