Принудительное использование SSL / https: // с использованием .htaccess для системы управления контентом (CMS) - PullRequest
2 голосов
/ 01 сентября 2011

Системы управления контентом часто заставляют страницы идти по маршруту index.php.

Например, используемые в CMS страницы представлены в URL следующим образом.

http://www.my-domain.co.uk/index.php?page=263

Код .htaccess, который я знаю, слушает только часть index.php моего оператора.

Мой текущий код перезаписи выглядит следующим образом:

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^login/?$ https://www.my-domain.co.uk/login [R=301,L]

Это работает, поскольку это конкретный каталог, однако,

RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^index.php?page=263$ https://www.my-domain.co.uk/index.php?page=263 [R=301,L]

не похоже на работу.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 02 сентября 2011
  1. RewriteRule просто соответствует разделу path URL, поэтому он должен быть просто ^index\.php$.
  2. Строка запроса может быть сопоставлена ​​с помощью RewriteCond %{QUERY_STRING}.
  3. Как и в ответе aesphere, проверка специальной переменной %{HTTPS} проще, чем проверка порта.
  4. Использование абсолютного целевого URI подразумевает [R=301,L], поэтому вы можете удалить его.
  5. [QSA] добавляет строку запроса

Итак, вы получите:

RewriteCond %{HTTPS} off
RewriteCond %{QUERY_STRING} ^\?page=263$
RewriteRule ^index\.php$ https://%{HTTP_HOST}%{REQUEST_URI} [QSA]
0 голосов
/ 01 сентября 2011

У меня есть фрагмент, который я где-то скопировал с веб-страницы.Возможно, вы могли бы попробовать?

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...