CodeigniterのURLからindex.phpを削除できません。 Codeigniter 1.7でいくつかのWebサイトを作成しましたが、使用した.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 /(site)/index.php/testcontroller
ありがとうございました。
これが以前に尋ねられた場合、おologiesびします-私は見ることができるものを見て、試しました。
編集:
また、デフォルトのフォルダを次のように変更したことも追加する必要があります
応用
CI-2.0
index.php
そして、index.phpのパスを正しいものに変更しました。
投稿した最初のコードブロックを試しますが、/ index.phpの代わりに/(site)/index.phpを使用してみてください(obvは(site)をサイトフォルダーの名前に置き換えます)。
これは私のために働いた:
これは私の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 documnetation からのすべての指示に従った後、サーバーの再起動を忘れないでください。私はそれをするのを忘れて、他のすべての解決策を試し続けました。
私はこれを2日間続けました。可能なすべてを試しました。私はちょうどあなたが次を必要とすることを出てきました:
タイプ:
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
これが役立つことを願って、マリオ
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
私はそれがあなたのために働くことを願っています
.htaccessに以下のコードを追加するだけです。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]