2013-05-15 13 views
12

私はこの質問が既に尋ねられていることを知っていますが、私はこれらすべてを試みましたが、まだURLからindex.phpを削除できませんでした。私の「/私も下のリンクが、運を見てUBUNTUのcodeigniterからindex.phpを削除するには

RewriteEngine On 
RewriteBase /projectname 

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

.. Cannot remove index.php from url CI based site

How to remove "index.php" in codeigniter's path

:ここに は私の詳細は

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

のように見える.htacessですetc/apache2/sites-available/default "は次のようになります:

<VirtualHost *:80> 
    ServerAdmin [email protected] 

    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> 

ご了承ください。 application/config/config.php変更で

+0

なんでもきみの ログ? –

+0

あなたの '$ config ['uri_protocol']'はどのように設定されていますか? –

+0

最後に、あなたはどんなエラーを受けますか?私は "オブジェクトが見つかりません"と思う? –

答えて

5

$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] 
+0

はい私もそれを更新しました。 –

+0

はい、私のApacheの数を再起動しました。役に立たない。 –

+0

あなたのhtaccessファイルで成功しませんでした。私は "RewriteBase/projectname"を私のciがこのフォルダの下にあるように変更します。 –

0

私の.htaccess

RewriteEngine on 

RewriteCond $1 !^(index.php) 

RewriteRule ^(.*)$ index.php/$1 [L] 
+0

私は成功 –

+0

変更はhttpd.confの、AllowOverrideのどれもこれを試してみました - それは、すでにあるように> AllowOverrideのすべて – blu

+0

はそれが見えない:アスカーのコードでは、 '<ディレクトリ/ var/www /の>'を参照してください。 –

46

ステップ1:

は、htaccessのファイルにこれを追加

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    #RewriteBase/

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

ステップ2:

インデックスを削除します。CodeIgniterのコンフィグでPHP

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

ステップ3:

は、Apacheの設定(コマンド)に

sudo nano /etc/apache2/apache2.conf 

をhtaccessファイルを上書きできるようにして

AllowOverride All 

にファイル&変更を編集wwwフォルダ用

ステップ4:

有効アパッチMODリライト(コマンド)

sudo a2enmod rewrite 

ステップ5:

Apacheを再起動(コマンド)で疑わしい

sudo /etc/init.d/apache2 restart 
+1

最高のソリューションと魅力のように働いた..ありがとうたくさん – user2899728

+0

最後に!ワーキングソリューション'service apache2 restart' – FireBrand

+1

はい、この解決策はcodeigniter 3.x + ubuntu 16.04 –

関連する問題