0

codeigniter を使用しているときに、いくつかの問題に直面しています。それは URL の index.php ファイルについてです。

CodeIgniter は、 を使用してすべてのページを提供しますindex.php。したがって、URL は次のようになります。

http://www.example.com/codeigniter/index.php/something

ファイルを編集して .htaccess ファイルを作成することindex.phpにより、URL からを削除したいと考えています。config.phpから構成を変更した後

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

$config['index_page'] = '';

次のように、index.php なしでプロジェクトを実行できます。

http://www.example.com/codeigniter/something

これで、そのリンクは機能していますが、index.phpフラグメントでも機能しています。アドレス付きのコンポーネントも表示されhttp://www.example.com/codeigniter/index.php/somethingます。

私の .htaccess ファイルは次のとおりです。

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

今、私は自分のサイトをリンクなしでのみ利用できるようにしたいと考えてindex.phpいます。リンク内の index.php ファイルを使用してこのサイトを実行したくありません。http://www.example.com/codeigniter/something完璧に走りたい、走らhttp://www.example.com/codeigniter/index.php/somethingない。これどうやってするの?

4

4 に答える 4

1

.htaccessファイルに次を追加してみてください

RewriteCond %{THE_REQUEST} codeigniter\/index\.php
RewriteRule codeigniter\/index\.php -[F]

基本的に、このルールは、リクエストに codeigniter/index.php が含まれている場合、禁止されたレスポンスを返すように指示します。

于 2013-10-05T14:58:38.030 に答える
0

? を追加する必要があります。index.php の後なので、すべてのホスティングで動作します。これは私のhtaccessです

RewriteEngine On
#RewriteBase /   maybe you don't need it, depends on the hosting
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|robots\.txt|humans\.txt|license\.txt|sitemap\.xml|assets)
RewriteRule ^(.*)$ index.php?/$1 [L]

于 2015-06-01T08:15:55.907 に答える
0

既にあるルールの上にこのルールを追加します。

RewriteCond %{THE_REQUEST} \ /codeigniter/index\.php([^\?\ ]*)
RewriteRule ^ /codeignighter/%1 [L,R=301]

また、含まれているリクエストを、含まindex.phpれていない URL にリダイレクトします。

于 2013-10-06T01:41:32.830 に答える