Я хочу, чтобы apache:
Я пробовал разные вкусы, но не могу заставить их работать. Когда пользователь получает доступ к веб-сайту, он перенаправляется на https: //, однако я не могу получить / {numeric} для перенаправления на add / view /. Числовое правило работало нормально, пока я не включил перенаправление https.
Я пробовал использовать RewriteCond% {HTTPS} = on, но это вызывает 500 ошибок.
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://domain.example.org/$1 [R,L]
RewriteRule ^(\d+)$ https://domain.example.org/view/$1 [R=301,L]
Это не сработает для вас?
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Попробуйте это проверить:
http://htaccess.madewithlove.be/
Хорошо, похоже, вы действительно хотите что-то вроде этого:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
RewriteCond %{REQUEST_URI} /1234
RewriteRule (.*) https://%{HTTP_HOST}/view%{REQUEST_URI} [L]
Замените первый RewriteCond на:
RewriteCond %{SERVER_PORT} !^443$
Это будет неожиданный ответ, но я считаю, что правила перезаписи совпадают в порядке очереди. Поскольку структура пути меняется, готов поспорить, http://domain.example.org/1234 пользователи перенаправляются на эквивалент https, но без изменения пути. Попробуйте изменить порядок правил, и вы приблизитесь к полному решению.
Если это не сработает, дайте мне знать, и я запущу экземпляр Apache, и мы посмотрим, что мы можем получить в тандеме.
Спасибо за вашу помощь.
Наконец-то это работает. Я использовал следующее:
RewriteCond %{HTTPS} off
RewriteRule ^/?(.*) https://domain.example.org/$1 [R,L]
RewriteRule ^([0-9]+)/?$ https://%{HTTP_HOST}/view/$1 [NC,L]
Таким образом, к любым числовым запросам добавлен / view, любые попытки доступа к сайту с http: // перенаправляются на https: //. Кажется, работает хорошо.