だから私は .htaccess で遊んで、私のコードイグナイターアプリできれいな URL を持っています。
要するに、私はしようとしています:
1) URL の index.php を削除します (リダイレクトは永続的です)。
http://localhost/directory/index.php*
to
http://localhost/directory/*
http://my.domain.com/index.php*
to
http://my.domain.com/*
2)特定のコントローラーのリクエストを index.php/[controller_name] に書き換えます。
http://localhost/directory/controller1*
to
http://localhost/directory/index.php/controller1*
http://my.domain.com/controller2*
to
http://my.domain.com/index.php/controller2*
私のhtaccessファイルは現在次のようになっています:
Options +FollowSymlinks
RewriteEngine On
#RewriteBase /
# Redirect index.php
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteCond %{THE_REQUEST} !/system/.*
RewriteRule ^(.*)index\.php((/)(.*))?$ /$1/$4 [R=301,L]
創刊号:
これは では機能しませんhttp://localhost/dir/index.php/controller1
。にリダイレクトする代わりにhttp://localhost/dir/controller1
、にリダイレクトしますhttp://localhost//controller1
($1
空の文字列を返しますか?)
# Rewrite CI certain controllers
RewriteCond %{THE_REQUEST} directory/(home|other_controller) [NC]
RewriteRule ^(.*)(home|other_controller)(.*)$ /$1index.php/$2$3 [NC,L]
第二号:
http://localhost/dir/home
これは、内部サーバー エラー (リダイレクトが多すぎる)を与える場合には機能しません。しかし、追加されたコードをテストR=301
すると、正常にリダイレクトされhttp://localhost/dir/index.php/home
ます。しかし、これはリダイレクトするつもりはありません。書き直すだけで済みます。
お知らせ下さい.. :)