我无法从Codeigniter中的网址中删除index.php。我用Codeigniter 1.7创建了一些网站,我使用的.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 / in。
我已将$ config ['uri_protocol']更改为REQUEST_URI和QUERY_STRING而没有。
我设置了$ config ['index_page'] =“”;
文件结构是192.168.0.130/(site)/所以它必须回到服务器的根目录,找不到index.php文件。
我可以通过放置192.168.0.130/(站点)/index.php/testcontroller
来达到我制作的所有控制器谢谢。
如果之前有人问过道歉 - 我已经看过并尝试过我能看到的内容。
编辑:
我还应该补充一点,我将默认文件夹更改为
应用
CI-2.0
的index.php
并将index.php中的路径更改为正确。
答案 0 :(得分:23)
尝试使用您发布的第一个代码块,但不要使用/index.php尝试使用/(site)/index.php(使用您的站点文件夹命名的obv替换(站点))。
答案 1 :(得分:15)
这对我有用:
这是我的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
答案 2 :(得分:3)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
只有在根文件夹中才需要将此添加到.htaccess
答案 3 :(得分:2)
按照其他人和CodeIgnitor URL documnetation的所有说明操作后,请不要忘记重新启动服务器。我只是忘记这样做,并继续尝试所有其他解决方案。
答案 4 :(得分:2)
我在这上面了两天..尝试了一切可能。我刚刚问你需要以下内容:
TYPE:
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
希望这有帮助, 马里奥
答案 5 :(得分:1)
您只需在.htacess中添加以下代码。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
答案 6 :(得分:1)
1)在根文件夹中创建.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
我希望它对你有用