У меня есть экземпляр AWS EC2, и я пытаюсь указать два разных URL-адреса для этого экземпляра.
Я использую NGINX (порт 80) для сервера Ruby и APACHE2 (порт 8080) для сервера WordPress.
Я настроил NGINX так, чтобы при запросе "blog.example.com" я перенаправлял его на example.com:8080/html/wordpress/ следующим образом:
server{
listen 80;
server_name blog.example.com;
location{
proxy_pass http://example.com:8080/html/wordpress/;
}
}
Доступ к blog.example.com отлично работает для домашней страницы. Однако, когда я пытаюсь, например, войти в систему, получаемый URL-адрес выглядит примерно так: http://example.com:8080/html/wordpress/wp-login.php
Я пытаюсь превратить этот URL во что-то вроде blog.example.com/wp-login.php или blog.example.com/login
Я попытался использовать mod_rewrite в файле /etc/apache2/sites-available/000-default.conf, но безуспешно.
Файл 000-default.conf:
<VirtualHost *:8080>
ServerName example.com
RewriteEngine on
RewriteRule example.com:8080/html/wordpress/(.*)$ blog.example.com/$1 [P,L]
</VirtualHost>
Что я могу сделать, чтобы решить эту проблему? Есть ли лучший способ обойти это, чем переписать?
Вам нужно заставить Wordpress генерировать URL-адреса, которые не включают номера портов. Веб-серверы не могут выполнить эту задачу, так как они не могут понять HTML-код достаточно хорошо, чтобы надежно преобразовать URL-адреса.