17

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

Ubuntu 12.10
PHP : 5.4.6
Mod_rewrite in on
CI verson: 2.1

.htacess 看起来像:

RewriteEngine On
RewriteBase /projectname

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

我还查看了以下链接,但没有运气.. 无法从基于 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>

任何帮助表示赞赏!

4

3 回答 3

69

第1步 :

在 htaccess 文件中添加这个

<IfModule mod_rewrite.c>
  RewriteEngine On
  #RewriteBase /

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ index.php [QSA,L]
</IfModule>

第2步 :

删除 codeigniter 配置中的 index.php

$config['base_url'] = ''; 
$config['index_page'] = '';

第 3 步:

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

sudo nano /etc/apache2/apache2.conf

并编辑文件并更改为

AllowOverride All

对于 www 文件夹

第4步 :

启用 apache mod rewrite(命令)

sudo a2enmod rewrite

第 5 步:

重启 Apache(命令)

sudo /etc/init.d/apache2 restart
于 2013-05-15T06:22:29.407 回答
7

application/config/config.php变化中:

$config['index_page'] = 'index.php';

到:

$config['index_page'] = '';

每次更改 apache 配置文件时重新加载 apache 是个好主意。

sudo /etc/init.d/apache2 reload

或者:

sudo service apache2 reload

或者:

sudo /etc/init.d/httpd reload

(或任何与您的平台等效的命令)

对于它的价值,这是我的 .htaccess

RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|static|robots\.txt|favicon\.ico|uploads|googlexxxxxxxx\.html|mobile.html)
RewriteRule ^(.*)$ index.php/$1 [L]
于 2013-05-15T04:42:35.320 回答
0

我的 .htaccess

RewriteEngine on

RewriteCond $1 !^(index.php)

RewriteRule ^(.*)$ index.php/$1 [L]
于 2013-05-15T04:44:20.217 回答