Назад | Перейти на главную страницу

Использование mod_rewrite в Ubuntu 14.04 для скрытия порта и папок

У меня есть экземпляр 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-адреса.