index.php没有删除https CodeIgniter

前端之家收集整理的这篇文章主要介绍了index.php没有删除https CodeIgniter前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用https时,index.PHP没有删除,但它适用于http.
我需要做的是我的网站正常工作,例如它适用于http和https.任何遇到同样问题的人都会帮我解决这个问题.

例如:在http

> http://xyz.mydomain.com/users/login //工作正常
> http://xyz.mydomain.com/index.php/users/login //工作正常

在https

1)https://xyz.mydomain.com/users/login //找不到404页面
2)https://xyz.mydomain.com/index.php/users/login //工作正常

我的htaccess代码

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$index.PHP/$1 [L]
</IfModule>

config.PHP文件
我的基本网址设置为

$root=(isset($_SERVER['HTTPS']) ? "https://" : "http://").$_SERVER['HTTP_HOST'];
$root.= str_replace(basename($_SERVER['SCRIPT_NAME']),'',$_SERVER['SCRIPT_NAME']);
$config['base_url'] = $root;
似乎您的主机文件中存在问题.
如果您使用的是apache,请更改您的主机文件;
<VirtualHost *:443>
   ServerAdmin admin@example.com
   DocumentRoot /path
   ServerName xyz.mydomain.com
   ServerAlias www.xyz.mydomain.com

   SSLEngine On
   SSLOptions +StrictRequire
   SSLCertificateFile /path to ssl file/mydomain.crt
   SSLCertificateKeyFile /path to ssl file/mydomain.key
   SSLProtocol TLSv1
    <Directory "/path">
        Require all granted
        Options -FollowSymLinks -Includes -ExecCGI -Indexes
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    RewriteEngine On
</VirtualHost>

现在为您的htaccess文件添加如下内容

<IfModule mod_rewrite.c>
   Options +FollowSymLinks
   RewriteEngine On
   RewriteCond %{SERVER_PORT} 80
   RewriteRule ^(.*)$https://xyz.mydomain.com/$1 [R=301,L]

   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.*)$index.PHP/$1 [L]
</IfModule>

快乐编码:)

猜你在找的PHP相关文章