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

두 서버 간의 서로 다른 버전 번호를 알고 있는 경우 다음을 사용하세요.mod_version이것을하기 위해. 예를 들어 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>

사용서버서명버전 정보를 클라이언트에 전송합니다.

관련 정보