如何从UBUNTU中的codeigniter中删除index.php

Sur*_*shi 14 php .htaccess mod-rewrite codeigniter

我知道这个问题已被提出,我尝试了所有这些但仍然无法从url中删除index.php.这是我的详细信息

Ubuntu 12.10
PHP : 5.4.6
Mod_rewrite in on
CI verson: 2.1
Run Code Online (Sandbox Code Playgroud)

.htacess看起来像:

RewriteEngine On
RewriteBase /projectname

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]  
Run Code Online (Sandbox Code Playgroud)

我也看下面的链接,但没有运气.. 无法从url CI网站删除index.php

如何删除codeigniter路径中的"index.php"

我的"/ etc/apache2/sites-available/default"如下所示:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None 
        </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

任何帮助赞赏!!

Din*_*ino 63

步骤1 :

在htaccess文件中添加它

<IfModule mod_rewrite.c>
  RewriteEngine On
  #RewriteBase /

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ index.php [QSA,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

第2步 :

删除codeigniter配置中的index.php

$config['base_url'] = ''; 
$config['index_page'] = '';
Run Code Online (Sandbox Code Playgroud)

第3步:

允许覆盖Apache配置(命令)中的htaccess

sudo nano /etc/apache2/apache2.conf
Run Code Online (Sandbox Code Playgroud)

并编辑文件并更改为

AllowOverride All
Run Code Online (Sandbox Code Playgroud)

对于www文件夹

第4步 :

启用apache mod rewrite(命令)

sudo a2enmod rewrite
Run Code Online (Sandbox Code Playgroud)

第5步:

重启Apache(命令)

sudo /etc/init.d/apache2 restart
Run Code Online (Sandbox Code Playgroud)

  • 最好的解决方案和工作就像一个魅力..非常感谢 (2认同)

Kin*_*xit 6

application/config/config.php变化:

$config['index_page'] = 'index.php';
Run Code Online (Sandbox Code Playgroud)

至:

$config['index_page'] = '';
Run Code Online (Sandbox Code Playgroud)

每次更改apache配置文件时都要重新加载apache是​​个好主意.

sudo /etc/init.d/apache2 reload
Run Code Online (Sandbox Code Playgroud)

要么:

sudo service apache2 reload
Run Code Online (Sandbox Code Playgroud)

要么:

sudo /etc/init.d/httpd reload
Run Code Online (Sandbox Code Playgroud)

(或者您平台的等效命令)

为了它的价值,这是我的.htaccess

RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|static|robots\.txt|favicon\.ico|uploads|googlexxxxxxxx\.html|mobile.html)
RewriteRule ^(.*)$ index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)