有沒有辦法偵測 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]

相反(?丟失了)。

有沒有辦法讓伺服器自動處理這個問題?以後備/試捕獲或類似的形式?

答案1

如果您知道兩台伺服器之間的不同版本號,請使用模組版本去做這個。例如,如果 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>

使用伺服器簽名將版本資訊傳送給客戶端。

相關內容