Примечание: я не могу иметь root-права на example.com, поэтому редактирование httpd.conf не вариант.
Я хочу что-нибудь от http://example.com для перенаправления на https и включая каталог косой черты. Это пример проблемы. Та же проблема, если это http: // www... или http://example.com...
Если URL-адрес выглядит так:
http://www.example.com/suggestions
Он неправильно перенаправляет на домашнюю страницу:
https://www.example.com/index.php
Когда желаемый результат заключается в перенаправлении сюда:
https://www.example.com/suggestions
Вот код .htaccess, который я использую:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
Насколько я могу судить, вы пытаетесь заставить использовать https по всем запросам, верно?
Быстрый поиск в Google дал мне:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
Краткое описание того, что это означает:
RewriteCond
сообщает, что это относится ко всем запросам, которые не вызываются с использованием HTTPS.
Две вещи происходят в RewriteRule
:
1) /?(.*)
говорит, что он должен соответствовать всему на пути, который затем сохраняется во встроенной переменной $1
.
2) %{SERVERNAME}
- встроенная переменная, относящаяся к имени сервера (www.example.com в вашем случае).
Итак, RewriteRule в основном говорит: сопоставьте все в пути и перенаправьте на его HTTPS-копию в том же домене.