У меня есть веб-сайт, где я должен использовать файл .htaccess для перенаправления всех запросов на index.php, где выполняется перенаправление. Я хочу переписать URL-адрес и в то же время использовать HTTPS. Без HTTPS он отлично работает.Переписать URL-адрес с .htaccess и HTTPS
Код от рабочего .htaccess без HTTPS. Браузер получает этот вход: alert/create
RewriteRule ^([a-zA-Z]*)/?([a-zA-Z]*)?/?([a-zA-Z0-9]*)?/?$ index.php?controller=$1&action=$2&id=$3 [NC,L]
Это прекрасно работает, но без HTTPS. URL-адрес браузера будет http://localhost/mypage/alert/create,
, и это то, что я хочу.
Я нашел решение, которое позволяет мне использовать HTTPS:
RewriteRule ^([a-zA-Z]*)/?([a-zA-Z]*)?/?([a-zA-Z0-9]*)?/?$ https://%{SERVER_NAME}/mypage/index.php?controller=$1&action=$2&id=$3 [NC,L]
Страница навигации работает как шарм, но браузер отображает URL, как это:
https://localhost/mypage/index.php?controller=alert&action=create&id=
запросы обрабатываются следующим образом:
public function __construct($urlvalues) {
$this->urlvalues = $urlvalues;
if ($this->urlvalues['controller'] == "") {
$this->controller = "home";
} else {
$this->controller = $this->urlvalues['controller'];
}
if ($this->urlvalues['action'] == "") {
$this->action = "index";
} else {
$this->action = $this->urlvalues['action'];
}
}
Мне нужны некоторые подсказки. Я искал по всему миру, не решая проблемы ... Если я могу использовать .htaccess, но реализовать HTTPS по-другому, это тоже будет прекрасно. Код сервера, написанный на PHP, работающий на apache2.
Веб-сайт работает, но URL отформатирован следующим образом: HTTPS: //localhost/mypage/index.php контроллер = & действие = & ID = –
Вы имеете в виду, что перенаправление HTTPS работает, но не с правильным URL-адресом? – ben
Вы поместили этот RewriteRule перед RewriteRule (с вашим контроллером и действием)? – ben