我使用godaddy作为我的服务器提供商,我购买了SSL证书。在我的CodeIgniter项目中,它让我对index.php感到头痛。我无法从我的网址中删除index.php。
我研究了周围并尝试了我发现的所有东西,但没有什么对我有用,所以不要把它视为双重请。
如果:https://example.com/index.php/home - 完美无缺
如果:https://example.com/home
我收到404错误。未找到在此服务器上找不到请求的文档。
到目前为止,我已经在我的htaccess文件中停止了这些条件:
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} (sale|success|cancel) [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !(static|sale|success|cancel) [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond $1 !^(index\.php|resources|robots\.txt|static) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
任何建议都会有所帮助。谢谢!
答案 0 :(得分:0)
从$ config ['base_url']中删除index.php。
然后使用此链接从url
中删除index.phphttp://addictors.in/remove-index-php-from-url-in-codeigniter/
然后重启服务器
答案 1 :(得分:0)
我的最终结果:
:
//Force SSL injection
if(!function_exists('force_ssl'))
{
function force_ssl() {
if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on") {
$url = "https://". $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
redirect($url);
exit;
}
}
}
在控制器中调用方法:force_ssl();
在.htaccess
中,index.php
为:
DirectoryIndex index.php
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|robots\.txt)
RewriteRule ^(.*)$ index.php?/$1 [L]