Codeigniter 从浏览器 URL 中移除 index.php
Posted
技术标签:
【中文标题】Codeigniter 从浏览器 URL 中移除 index.php【英文标题】:Codeigniter Remove index.php from Browser Url 【发布时间】:2016-05-06 21:50:54 【问题描述】:我想创建一个应用网址“http://example.com”。但是输入 url,它显示“HTTP Error 403.14 - Forbidden”。当我在 'http://example.com/index.php' 之类的 url 的最后插入'index.php' 时,登录页面正在浏览器中呈现 我已经改了
$config['base_url'] = 'http://example.com';
$config['index_page'] = '';
和
$config['uri_protocol'] = 'REQUEST_URI';
在 config.php 文件中。然后我将 .htaccess 文件与应用程序和系统文件夹一起放在 codeigniter 根文件夹中。然后在 .htaccess 文件中我用
编码<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
我只想从 url 中删除“index.php”。我正在使用 IIS 8.5 网络服务器。
【问题讨论】:
很抱歉,由于没有任何 IIS 经验,我无法给您准确的答案。但是这里列出了几个答案。第二个答案对我有用。 ***.com/questions/1445385/… 您可能会尝试的另一件事是多编辑 .htaccess “RewriteBase / RewriteRule 上的 RewriteEngine ^(application|system|\.svn) index.php/$1 [L] RewriteCond %REQUEST_FILENAME !-f RewriteCond %REQUEST_FILENAME !-d RewriteRule ^(.*)$ index.php/$1 [QSA,L]" 我已经这样了,但没用。 apache 和 iis 的工作方式一样吗 好像不行:***.com/questions/25439087/… 那么试试这个。实际上,您似乎还需要 URL Rewrite 模块,并且规范(conf)看起来与 apache 不同。 你使用什么版本的 CI? 我用你的代码编辑了 .htaccess “RewriteBase / RewriteRule 上的 RewriteEngine ^(application|system|\.svn) index.php/$1 [L] RewriteCond %REQUEST_FILENAME !-f RewriteCond % REQUEST_FILENAME !-d RewriteRule ^(.*)$ index.php/$1 [QSA,L]" 和 o/p 是相同的“HTTP Error 403.14 - Forbidden” 【参考方案1】: htaccess file
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
my site is working http://demo.crowdfundingscript.com/
config file
$config['uri_protocol'] = 'AUTO';
$config['index_page'] = '';
【讨论】:
仍然显示相同的错误。我是否更改了根目录中的 index.php 文件【参考方案2】:替换这一行:-
$config['uri_protocol'] = 'REQUEST_URI';
to
$config['uri_protocol'] = 'AUTO';
还可以更改您的基本网址,如下所示。
$config['base_url'] = 'http://'.$_SERVER['HTTP_HOST'].'/';
将你的规则写如下:
RewriteEngine On
RewriteBase /
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
希望它对你有用:)
【讨论】:
结果也一样。 为什么要改变“$config['uri_protocol'] = 'REQUEST_URI';”到“$config['uri_protocol'] = 'AUTO';”【参考方案3】:在 config.php 中,
删除 $config['index_page'] 中的 index.php
例如:
$config['index_page'] = '';
【讨论】:
以上是关于Codeigniter 从浏览器 URL 中移除 index.php的主要内容,如果未能解决你的问题,请参考以下文章
从 fetchedResultsController fetchedObjects 中移除一个对象
如何观察 NSManagedObject 是不是从 managedObjectContext 中移除