如何在默认 Ubuntu 安装上将 phpmyadmin 重定向到 SSL?

如何在默认 Ubuntu 安装上将 phpmyadmin 重定向到 SSL?

我正在尝试在 Ubuntu 12.04 的默认安装上将 phpmyadmin 重定向到 SSL。我启用了它mod_rewrite,并使用以下命令打开了引擎:

RewriteEngine On

然后,在中/etc/phpmyadmin/apache.conf,我添加了两行来重定向,因此它看起来像这样:

<Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php

    RewriteCond %{HTTPS} off
    RewriteRule ^/phpmyadmin https://%{HTTP_HOST}%{REQUEST_URI}

    <IfModule mod_php5.c>
            AddType application/x-httpd-php .php

            php_flag magic_quotes_gpc Off
            php_flag track_vars On
            php_flag register_globals Off
            php_admin_flag allow_url_fopen Off
            php_value include_path .
            php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
            php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/
    </IfModule>
</Directory>

它没有重定向。你知道发生了什么吗?

答案1

尝试基于原始配置修改后的配置。请注意,我已明确添加了RewriteEngine OnRewriteCond检查 HTTPS 是否未打开(而不是关闭),并且略微调整了以使其更加灵活和明确。还添加了逻辑以明确强制不使用纯 HTTP 的RewriteRule调用:phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php

    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^/(phpmyadmin) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]

    RewriteCond %{HTTPS} =on
    RewriteRule !^/(phpmyadmin) http://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]

    <IfModule mod_php5.c>
            AddType application/x-httpd-php .php

            php_flag magic_quotes_gpc Off
            php_flag track_vars On
            php_flag register_globals Off
            php_admin_flag allow_url_fopen Off
            php_value include_path .
            php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
            php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/
    </IfModule>
</Directory>

答案2

JakeGould 的答案对我不起作用,可能是因为我还需要重定向页面里面/phpmyadmin 目录。尝试以下操作:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} ^/phpmyadmin
RewriteRule ^/?(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

这将捕获所有 URI开始并使用/phpmyadmin301 重定向至 HTTPS。

我已经测试过Apache/2.4.25 (Debian)MadeWithLove 的 Htacess 测试仪

相关内容