2009-06-08 7 views
6

2時間後、私はそれを正しく得ることができませんでした。URLに醜い "index.php /"がないように、Kohanaの.htaccessを正しく設定する方法は?

Kohanaのインストールは、すなわち、直接自分のドメインの下でアクセス可能であり、「http://something.org/

代わりのhttp://something.org/index.php/welcomde/index私は私の.htaccessが完全に台無しにされhttp://something.org/welcome/index

のようなURLを持っていると思います。これは実際にダウンロードに付属している標準のexample.htaccessです。それはほとんど役に立たない。 kohanaページには、「index.phpを削除する方法」のチュートリアルがあります。それはそれを取り除く方法についても話していないので、本当に役に立たない。全く混乱する。

標準的なコハナのインストールのために彼の作業用の.htaccessを提供できますか?

答えて

9

私のhtaccessは例のようです。

RewriteEngine On 

RewriteBase/

RewriteRule ^(application|modules|system) - [F,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule .* index.php/$0 [PT,L] 

しかし、あなたはまたにconfig.phpファイルを変更する必要があります、Kohanaのは、CodeIgniterののフォークであることを考えるとhttp://codeigniter.com/wiki/mod_rewrite/

:私はあなたがこのリンクを見て与えることをお勧めし

$config['index_page'] = ''; 
+0

- [F、L]と[PT、L]のことは何ですか? Apacheのマニュアルを参照してください – Thanks

+0

: http://httpd.apache.org/docs/2.2/rewrite/rewrite_flags.html 「F | [F]フラグを使用して を禁じApacheがに403の禁止ステータスコードを返すようになり"L"フラグを指定すると、mod_rewriteはルールセットの処理を停止します。ほとんどのコンテキストでは、ルールが一致した場合、それ以上のルールは処理されません。 "PT |パススルー RewriteRuleのターゲット(または置換文字列)は、デフォルトではファイルパスとみなされます。 – Ambirex

+1

私はindex_pageをapplication/config/config.phpで ''に設定し、まったく同じ.htaccessを使用しました。私はまだindex.phpを離れるときにこのメッセージを受け取っています/私のURLに: "入力ファイルが指定されていません" ...非常に奇妙です – Thanks

2

このmod_rewriteのルールお試しください:CGIモードでPHPを実行するとき、私はspecficially考えて、いくつかのホストで

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule !^index\.php index.php%{REQUEST_URI} [L] 
+0

それは動作しません... – Thanks

+0

そして、それはどういう意味ですか?http://kohanaphp.com/tutorials/remove_index – Gumbo

+0

「入力エラー」メッセージ(白いページ)が表示されます。 はい、私はしました。彼らはそれを約束するけれども、それを取り除く方法について話しません。彼らは記事の中でそれを完全に忘れてしまった。本当に哀れみです。 – Thanks

3

を、あなたは

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

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

を変更する必要があります

あなたのhtacセス。したがって、基本的にthe kohana recommended setupを使用して、index.php/$1index.php?/$1

+0

動作しません。両方を試してみました。 config.phpのindex_page = ''です。それでも、URLの中にindex.php/fooを置くと、動作するコントローラに来ることができます:/ – Thanks

+0

Hrm、 "入力ファイルが指定されていません"というのは、疑問符を追加すると通常は修正されます。明確にするために、この修正はhtaccess専用で、config.phpファイルには何もありませんでした。 – Dylan

+0

それは私のためにうまく動作します。どうもありがとう。 – khanh

5

と置き換えてください。これは現在の.htaccessファイルであり、動作しているようです。

RewriteEngine On 

# Allow any files or directories that exist to be displayed directly 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

# Rewrite all other URLs to index.php/URL 
RewriteRule .* index.php/$0 [PT,L] 

ウェブルート以外のすべてのアプリケーション、システム、およびモジュールのディレクトリがあります。

0

あなたはこれで修正するかもしれません。それは私のために働いていました(CodeIgniter上)。デフォルトでOSX上の「禁止エラー」403を取得する人のために

+0

FYI、Kohanaはフォークとして始まったが、以来、完全に書き直されている。 – Ambirex

+0

はい、あなたは正しい、実際に私の提案や何かがあった。私はリンクが同じであれば(もし異なっていても)始めると助けになると思います。 – apelliciari

1

は.htaccessの

に最初の行として追加してください.htaccessのオプション+ FollowSymLinksを

0

Kohanaの3.2は、異なる慣習があります。 Kohana_URLを見ると、次の関数シグネチャがあります。

public static function site($uri = '', $protocol = NULL, $index = TRUE) 

ここで、$ indexのデフォルトはTRUEです。 $ indexを渡すことで、index.phpの参照を削除します。

関連する問題