Мне нужно добавить параметр к URL-адресу, если к URL-адресу обращаются в https и только если параметр не существует (мне не нужно проверять значение параметра).
Пример 1: ничего не следует делать, поскольку URL-адрес доступен в http
Исходный URL: http://example.com Конечный URL: http://example.com
Пример 2: Apache необходимо перенаправить на https://example.com?parameterName=parameterValue
Оригинал URL: https://example.com
Окончательный URL: https://example.com?parameterName=parameterValue
Пример 3. Ничего не следует делать, поскольку URL-адрес находится в https и содержит параметр «имя_параметра» (этот параметр предотвращает бесконечность l oop)
Исходный URL: https://example.com?parameterName=parameterValue Конечный URL: https://example.com?parameterName=parameterValue
То, что я пробовал до сих пор:
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^parameterName$ [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}%parameterName=parameterValue
Редактировать 1: если я удалю "RewriteCond % {HTTPS} on "условие, кажется, правило выполняется. Параметры не добавляются правильно, но, по крайней мере, выполняется правило.
Теперь мне нужно понять, почему правило не выполняется, когда в HTTPS.
Погуглив немного, я нашел несколько сообщения о том, что AllowOverride необходимо изменить на AllowOverride All.
Я обновил строку ниже в моем файле httpd-conf, но поведение не изменилось:
От: AllowOverride Нет Чтобы разрешить переопределение Все