1

Я использую следующие правила перезаписи, чтобы передать весь 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 ответ1

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>

Используйте ServerSignature для отправки информации о версии клиенту.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .