具有Angular Fullstack(NodeJS)应用程序307重定向的Apache虚拟主机

时间:2017-05-18 21:26:38

标签: apache .htaccess redirect virtualhost angular-fullstack

我有一个Ubuntu服务器,其中有多个php应用程序在端口9999上运行Apache。

同时,同一服务器上的NodeJS应用程序在端口8080上运行,我使用apache的虚拟主机将请求从端口80或443重定向到我的NodeJS应用程序。

我的虚拟主机看起来像这样:



<VirtualHost *:80>
   ServerName example.com
   ServerAlias www.example.com
   Redirect permanent / https://www.example.com/
</VirtualHost>

<VirtualHost *:443>
        ServerName example.com
        ServerAlias www.example.com

        SSLEngine on
        SSLCertificateFile /ssl/example.com.pem
        SSLCertificateKeyFile /ssl/example.com.key
        SSLCACertificateFile /ssl/intermediate.pem

        ServerAdmin webmaster@localhost
        DocumentRoot /home/marcel/www/example
        Options -Indexes

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        ProxyRequests on
        ProxyPass / http://127.0.0.1:8080/
        ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>
&#13;
&#13;
&#13;

现在,对example.com的所有请求都应重定向到https://www.example.com。我有这个.htaccess文件。

&#13;
&#13;
Options -MultiViews
ErrorDocument 404 /404.html

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
  # Options +SymLinksIfOwnerMatch
    RewriteEngine On
  # RewriteBase /
</IfModule>

<IfModule mod_rewrite.c>
    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
    RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

<IfModule mod_autoindex.c>
    Options -Indexes
</IfModule>

<IfModule mod_rewrite.c>
    RewriteCond %{SCRIPT_FILENAME} -d [OR]
    RewriteCond %{SCRIPT_FILENAME} -f
    RewriteRule "(^|/)\." - [F]
</IfModule>
&#13;
&#13;
&#13;

我的问题:当我转到http://example.com时,我被重定向到https://example.com(没有www,但确定),我得到307重定向!我想要301的SEO原因。如果我做www.example.com =&gt;同样的事情会发生它转到https://www.example.com但也有307重定向。

0 个答案:

没有答案