2017-12-18 16 views
0

Nginxリバースプロキシサーバーの後ろにDjangoのWebサイトがあります。私はWordPress(WP)でブログを始めたいので、WPを実行する別のLAMPサーバー(PHP-FMを使用)を作成しました。私は良いSEOのスコアを維持するために私のウェブサイト上のブログのURIを "mysite/blog"にしたい。そのために、LAMPサーバーのWPブログサイトを指すnginx仮想サブディレクトリを作成しました。しかし、自分のウェブサイトからブログに接続しようとすると、404エラーが発生します。私は私のApache仮想ホストの設定を変更する必要があると思うが、私はそれを行う方法を理解することはできません。ここでApache仮想サーバーに到達するためのNginx仮想ディレクトリの構成方法

は私のnginxの設定ファイルの関連する部分です:

# /etc/apache2/sites-available/vhosts.conf 
DirectoryIndex index.php index.html 

<VirtualHost *:80> 
    ServerName "cms00.mysite.com" 
    Redirect permanent/https://cms00.mysite.com 
</VirtualHost> 

<VirtualHost *:443> 
    ServerName "cms00.mysite.com" 
    DocumentRoot "/var/www/html/mysite.com" 
    ... 
    <Directory "/var/www/html"> 
    AllowOverride All 
    Options -Indexes -Includes +FollowSymLinks 
    Require all granted 
    </Directory> 
    RewriteCond %{HTTP_HOST} !^www\. [NC] 
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
</VirtualHost> 

注WordPressのは、あなたの中にWPをインストールするように助言すること:ここで

# /etc/nginx/sites-available/mysite.conf 
server { 
    listen 80; 
    server_name web00.mysite.com; 
    return 301 https://$server_name$request_uri; 
} 

server { 
    listen 443 ssl; 
    server_name web00.mysite.com; 
    ... 
    location /blog { 
     proxy_pass https://cms00.mysite.com; 
    } 
} 

は私のApacheの設定ファイルの関連する部分ですウェブサイトのドキュメントルート(私の場合は/var/www/html/mysite.com)で、別のサブディレクトリではありません。 WPがドキュメントルートの下にある独自のサブディレクトリにインストールされていると、多くのWPプラグインは機能しません。

ブラウザに「cms00.mysite.com/wp-login.php」と入力すると、Wordpress Userのログインページが表示されます。しかし、「web00.mysites.com/blog」と入力すると、WPの「おっと!そのページが見つかりません」と表示されます。エラー。私は、Apacheのログに404エラーを見ることができます:

... "GET /blog/ HTTP/1.0" 404 ... 

私はなぜこれが起こっている私は理解して信じています。私のリクエストは、https ::/cms00.mysite.com/blogとしてWPサーバーに渡されています。しかし、https://cms00.mysite.comはすべてのWPファイルを含むドキュメントルート/var/www/html/mysite.comを指しています。 'blog'サブディレクトリはありません。私が作成してHTMLファイルを入れて、ページを更新すると、そのファイルが表示されます。

URI、https://web00.mysite.com/blogを使用してWPブログにアクセスできるように、NginxやApacheを設定するにはどうすればよいですか?

答えて

0

この作業には3つのことが必要です。

<VirtualHost *:443> 
    ... 
    Alias /blog "/var/www/html/mysite.com" 
    ... 
</VirtualHost> 

次に、あなたはWordPressのルートディレクトリに、次の.htaccessファイルを追加する必要があります:最初は、あなたがWPサーバー上のvhosts.confファイルに次の行を追加する必要があるということです

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond $1 !^(wp-login\.php) 
RewriteBase /blog/ 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /blog/index.php [L] 
</IfModule> 

最後に、一般設定に行き、https://cms00.mysite.com/wp-admin経由でWordPressの管理にログインし、かつ示すように、これらの2つの設定があることを確認します。

WordPress Address (URL): https://cms00.mysite.com/blog 
Site Address (URL): https://cms00.mysite.com/blog 
関連する問題