我试图在默认安装的Ubuntu 12.04上将phpmyadminredirect到SSL。 我启用mod_rewrite ,我打开引擎:
RewriteEngine On
然后,在/etc/phpmyadmin/apache.conf ,我添加了两行来redirect,所以它看起来像这样:
<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>
这不是redirect。 任何想法是怎么回事?
尝试根据您的原来的修改后的configuration。 请注意,我已经明确添加了RewriteEngine On , RewriteCond检查HTTPS是否不在(而不是closures),并且RewriteRule稍微调整为更加灵活和明确。 还添加了逻辑来显式强制不是phpmyadmin调用是普通的HTTP:
<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>
JakeGould的答案不适合我,可能因为我需要也redirect/ phpmyadmin目录中的页面。 尝试这个:
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteCond %{REQUEST_URI} ^/phpmyadmin RewriteRule ^/?(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
这将捕获以/phpmyadmin 开头的所有URI,并将301redirect到HTTPS。
我已经用Apache/2.4.25 (Debian)和MadeWithLove的Htacesstesting器testing过了 。