如何使用index.php
从网址中删除.htaccess
,以便用户输入时,例如:
它将成为:
目前
使用我当前的.htaccess
,上面的两个网址都可以访问控制器welcome
,但我只想为控制器提供一个有效的网址。
RewriteEngine on
RewriteCond $1 !^(index\.php|admin_assets|img|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1
答案 0 :(得分:1)
搜索此行:
$config['index_page'] = "index.php";
像这样编辑:
$config['index_page'] = ""; //remove index.php from there
并在你的htaccess中添加:
Options +FollowSymLinks
Options -Indexes
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|images|css|js|robots\.txt|favicon\.ico|sitemap\.xml)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
希望这有帮助。
答案 1 :(得分:0)
有大约50000个问题处理这个以及关于它的大wiki帖子
http://codeigniter.com/wiki/mod_rewrite/
ModRewrite not working for codeigniter site
CodeIgniter - How to hide index.php from the URL
......那些应该有所帮助
答案 2 :(得分:0)
简单快捷的解决方案:
只需使用以下代码
创建.htaccess
文件即可
RewriteEngine on RewriteCond $1 !^(admin_assets|img|css|js|robots\.txt|favicon\.ico) RewriteRule ^(.*)$ index.php/$1 [L]
然后将其放在CI
附近的index.php
应用程序的根目录中。
此修改后的.htaccess
文件符合您的要求(即you don't want the user to be able to access the same page with 2 different urls's
)
Q值。它会做什么?
答:它会指导您的应用程序的所有请求到index.php,包括那些包含index.php
的网址,除了(admin_assets,img,css,js文件夹和你的robots.txt,favicon.ico文件)显然在apache上。< / p>
CodeIgniter自己的文档非常好,URL's in CI