我正在尝试在 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 On
,RewriteCond
检查 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开始并使用/phpmyadmin
301 重定向至 HTTPS。
我已经测试过Apache/2.4.25 (Debian)
了MadeWithLove 的 Htacess 测试仪。