删除index.php从URL – Codeigniter 2
我无法从Codeigniter中的URL中删除index.php。 我用Codeigniter 1.7创build了一些网站,我用的.htaccess代码在2中不起作用。
我曾尝试使用
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ /index.php?/$1 [L] RewriteCond %{REQUEST_URI} ^application.* RewriteRule ^(.*)$ /index.php?/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L] </IfModule>
和
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt|css) RewriteRule ^(.*)$ ./index.php/$1 [L] </IfModule>
我也试过没有RewriteBase /中。
我已经将$ config ['uri_protocol']更改为REQUEST_URI和QUERY_STRING,没有任何内容。
我已经设置了$ config ['index_page'] =“”;
文件结构是192.168.0.130/(site)/,所以它必须回到服务器的根目录,并且找不到index.php文件。
我所做的所有控制器都可以通过把192.168.0.130/(site)/index.php/testcontroller
谢谢。
如果之前已经问过这个问题,我表示歉意 – 我已经看过并尝试了我所能看到的。
编辑:
我还应该补充说,我改变了默认的文件夹
应用
CI-2.0
的index.php
并改变了index.php中的path是正确的。
尝试你发布的第一个代码块,而不是/index.php尝试使用/(site)/index.php(obv用您的站点文件夹命名的obvreplace(site))。
这对我工作:
- 创build你的htaccess文件
- 将$ config ['index_page']设置为空(config.php)
- stringSet $ config ['uri_protocol'] ='REQUEST_URI'; (config.php的)
这是我的htaccess文件:
Options -Indexes Options +FollowSymLinks
RewriteEngine On RewriteBase / #Removes access to the system folder by users. #Additionally this will allow you to create a System.php controller, RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ index.php?/$1 [L] #When your application folder isn't in the system folder RewriteCond %{REQUEST_URI} ^application.* RewriteRule ^(.*)$ /index.php?/$1 [L] #Checks to see if the user is attempting to access a valid file, #such as an image or css document, if this isn't true it sends the #request to index.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L]
# If we don't have mod_rewrite installed, all 404's # can be sent to index.php, and everything works as normal. # Submitted by: ElliotHaughin ErrorDocument 404 /index.php
资源:
http://taggedzi.com/articles/display/codeigniter-2-htaccess-and-friendly-urls
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L]
这只需要在根文件夹中添加这个.htaccess
遵循其他人的所有说明并从此CodeIgnitor URL文档中 ,不要忘记重新启动服务器 。 我只是忘了这样做,不断尝试所有其他的解决scheme。
我在这上了两天..试了一切可能的。 我刚刚出来,你需要以下几点:
types:
sudo nano /etc/apache2/sites-available/default
并将AllowOverride None更改为AllowOverride All – 这将访问您的.htaccess文件
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all # Uncomment this directive is you want to see apache2's # default start page (in /apache2-default) when you go to / #RedirectMatch ^/$ /apache2-default/ </Directory>
还可以在Apache上启用mod重写:
http://stackoverflow.com/questions/3131236/how-do-you-enable-mod-rewrite
希望这有助于,马里奥
你只需要在.htacess中添加下面的代码。
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
1)在根文件夹中创build.htaccess文件
RewriteEngine on RewriteCond $1 !^(index\.php|resources|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]
2)编辑Application文件夹中的application / config / config.php文件
$config['base_url'] = 'http://localhost/projectName'; $config['index_page'] = ''; // remove index.php
我希望它会为你工作