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

Apache 2.4.12 Перенаправить подпапку Wordpress на IP-адрес другого сервера

Я запускаю wordpress внутри laravel общественный папка, которая действует как корень моего сайта. Как мне перенаправить на другой IP-адрес сервера, то есть (xx.xx.xx.xxx), когда кто-то обращается к следующей подпапке: example.com/forum

Другой сервер запускает nginx с форумом в качестве единственного сайта.

Вот моя конфигурация apache vhost для сайта:

/etc/apache2/sites-available/example.conf

<VirtualHost *:80>
   ServerName example.com
   ServerAdmin me@example.com

   DocumentRoot /var/www/example

   RewriteEngine on
   ProxyRequests off

   #Redirect all HTTP requests to HTTPS
   RewriteCond %{SERVER_PORT} 80
   RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]

   #Redirect forum subdirectory requests to forum server
   RewriteRule ^/forum$ https://example.com/forum/ [R] [L]   
   RewriteRule ^/forum/(.*) http://xx.xx.xx.xxx/$1 [P]

   <Directory /var/www/example>
     AllowOverride all  
   </Directory>
</VirtualHost>

заявка .htaccess

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On
    RewriteBase /


    # Redirect Trailing Slashes...
    RewriteCond %{REQUEST_URI} ^/(live|api|auth|_debugbar)$
    RewriteRule ^(.*[^/])$ /$1/ [L,R=301]

    RewriteCond %{REQUEST_URI} ^/(live|api|auth|_debugbar)/.*
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ laravel.php [L]

    # Handle Front Controller...
    RewriteRule ^index\.php$ - [L]

    #admin panel route
    RewriteRule ^([_0-9a-zA-Z-]+/)?admin-panel/(.*) $1wp-admin/$2?%{QUERY_STRING} [L]
    RewriteRule ^login(.*) wp-login\.php/$1?%{QUERY_STRING} [L]

    # uploaded files
    RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

    # add a trailing slash to /wp-admin
    RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
    RewriteRule . index.php [L]
</IfModule>

Самый простой способ - добавить:

Redirect permanent /forum http://otherserver

в конфигурацию вашего apache vhost или добавить:

RewriteRule ^/forum(.*)$ http://otherserver/$1 [R=301,NC,L]

к вашему .htaccess.