環境ApacheによるCentos
Httpからhttpsへの自動リダイレクトを設定しようとしています
From manage.mydomain.com --- To ---> https://manage.mydomain.com
私は私のhttpd.confに以下を追加しようとしましたが、うまくいきませんでした
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_Host}/$1 [NC,R,L]
何か案は?
私は実際にこの例に従った、そしてそれは私のために働いた:)
NameVirtualHost *:80
<VirtualHost *:80>
ServerName mysite.example.com
DocumentRoot /usr/local/Apache2/htdocs
Redirect permanent / https://mysite.example.com/
</VirtualHost>
<VirtualHost _default_:443>
ServerName mysite.example.com
DocumentRoot /usr/local/Apache2/htdocs
SSLEngine On
# etc...
</VirtualHost>
それから:
/etc/init.d/httpd restart
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI}
http://www.sslshopper.com/Apache-redirect-http-to-https.html
または
http://www.cyberciti.biz/tips/howto-Apache-force-https-secure-connections.html
Apache redirect http to https
を検索し、ここに上陸しました。これは私がubuntuでやったことです:
Sudo a2enmod rewrite
Sudo a2enmod ssl
ファイルを編集
/etc/Apache2/sites-available/000-default.conf
内容は次のとおりです。
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI}
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile <path to your crt file>
SSLCertificateKeyFile <path to your private key file>
# Rest of your site config
# ...
</VirtualHost>
Sudo service Apache2 restart
実際には、あなたのトピックは https://serverfault.com/ に属していますが、それでもこれらをチェックしてみることができます。 ディレクティブ
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://%{HTTP_Host}/$1
Mod_rewriteを使用することは、仮想ホストを使用してリダイレクトすることをお勧めしません。
もしあなたがmod_rewriteを使ってやろうとしているなら:
RewriteEngine On
# This will enable the Rewrite capabilities
RewriteCond %{HTTPS} !=on
# This checks to make sure the connection is not already HTTPS
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
# This rule will redirect users from their original location, to the same
location but using HTTPS.
# i.e. http://www.example.com/foo/ to https://www.example.com/foo/
# The leading slash is made optional so that this will work either in
# httpd.conf or .htaccess context
参照: Httpd Wiki - RewriteHTTPToHTTPS
301 Permanent Redirectを探しているなら、redirectフラグは
R=301
rewriteRuleは次のようになります。
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]
サーバーのバージョン:Apache/2.4.29(Ubuntu)
Web上で、そしてApacheの公式文書で長い間検索した後、私のために働いた唯一の解決策は/ usr/share/doc/Apache2/README.Debian.gzから来ました
To enable SSL, type (as user root):
a2ensite default-ssl
a2enmod ssl
/etc/Apache2/sites-available/000-default.confファイルに、
"/" " https://sub.domain.com/ "をリダイレクトする
<VirtualHost *:80>
#ServerName www.example.com
DocumentRoot /var/www/owncloud
Redirect "/" "https://sub.domain.com/"
それでおしまい。
P.S:あなたが抽出せずにマニュアルを読みたい場合:
gunzip -cd /usr/share/doc/Apache2/README.Debian.gz
Apache2.4をお持ちの場合は000-default.conf
をチェックしてください - DocumentRoot
を削除して追加
Redirect permanent / https://[your-domain]/
これは私のために働いた:
RewriteCond %{HTTPS} =off
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [QSA,L,R=301]
このコードは私には役に立ちます。
# ----------port 80----------
RewriteEngine on
# redirect http non-www to https www
RewriteCond %{HTTPS} off
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
# redirect http www to https www
RewriteCond %{HTTPS} off
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
# ----------port 443----------
RewriteEngine on
# redirect https non-www to https www
RewriteCond %{SERVER_NAME} !^www\.(.*)$ [NC]
RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
Apache Virtualhosting設定でこれを試してから、Apacheサービスをリロードしてください。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI}