2009-07-15 9 views
3

cakephpのURLからindex.phpを削除するにはどうすればよいですか?私のフォームフォルダにアクセスするには、私はURL:http://localhost/cake_1_2/index.php/formsを与えなければなりません。cakephpのURLからindex.phpを削除する

このindex.phpを削除するにはどうすればよいですか?

core.phpで説明したように、フォルダから.htaccessを削除し、App.baseUrl行のコメントを外しました。しかし、URLにindex.phpのないページは表示できません。

+0

ええと...なぜあなたはそれをしますか? index.phpはデフォルトでは表示されないはずですが、.htaccessファイルを削除したので、最も確実に表示されます。 –

+0

その後、これらのファイルを削除しないでください。私は自分のURLにindex.phpが必要ない。 – Angeline

+3

index.phpのないクリーンURLを使用する場合は、.htaccessファイルが必要です。また、mod_rewriteを有効にする必要があります。 – dhofstet

答えて

2

mod_rewriteでCakePHPを使用している場合(かなりのURLを取得するため)、WEBROOT内に新しいフォルダを作成し、アクセスファイルをうまく作成できます。

例:

Site/webroot/forms/form.php = http://www.sitename.com/forms/form.php 

のCakePHPのmod_rewriteがindex.phpに渡しWEBROOTの既存のファイルをチェックしませするように設定されています。

Webroot以外のフォルダに移動する必要がある場合は、シンボリックリンクを使用してプレイすることを検討してください。

1

CakePHP Install guideセクションのmod_rewriteを確認してください。 Apacheで有効になると、きれいなURLだけが機能します。 Apacheを使用していない場合、あなたは醜いURLに悩まされています。

+0

lighttpdでmod_rewriteと短いURLを使用することもできます。 –

0

このmod rewriteチュートリアルhereをチェックすることもできます。 多くの状況でURLのクリーニングに役立つ一般的な情報を持っています。含まれている例もあります。

1

は、単にそれはあなたのルート、アプリをチェックしているかいない

  1. 確認するために、これらは、次の手順に従って、ウェブルートは、実際の.htaccessファイルが含まれています。

    <Directory /> 
    Options FollowSymLinks 
    AllowOverride All# 
    Order deny,allow# 
    Deny from all 
    </Directory> 
    
  2. また、このラインがuncammentedです:

  3. apacheeサーバは次のように構成してい

    LoadModule rewrite_module libexec/apache2/mod_rewrite.so 
    

を次に変更

1

私を見て、あなたのapacheを再起動しますURに同じ問題があり、index.phpを持っていたL. httpd.confの間違った部分を編集しています。行った後

# Leave this area alone, CakePHP docs are wrong 
<Directory /> 
    Options FollowSymLinks 
    AllowOverride None 
    Order deny,allow 
    Deny from all 
</Directory> 

# Match this area 
<Directory "/SomePath/app/webroot"> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride All # Turn AllowOverride All on here 
    Order allow,deny 
    Allow from all 
</Directory> 

:あなたのhttpd.confは次のようになります/app/.htaccessと/app/webroot/.htaccess

、/.htaccess:また、あなたの.htaccessファイルが存在することを確認してこれは、私は簡単に経路を作成することができますのようなアクセスページ:http://localhost/about/

お楽しみください!

0

だから、大丈夫でしょうか?あなたはすでにmod_rewriteを持っていますか?

mod_rewriteが正しくロードされている場合、.htaccessファイルが配置され、インデックスに登録されています。PHPはまだリンクに現れますが、おそらくcore.phpフレームワーク設定ファイルに問題があります。

問題の原因

私の場合、それはApp.baseUrl設定オプションに問題があった。ここで問題

を解決

Configure::write('App.baseUrl', env('SCRIPT_NAME')); 

は、私はその問題を修正(とリダイレクトといくつかの他)方法ですcore.phpから次の行をコメントアウトしてください:

// Configure::write('App.baseUrl', env('SCRIPT_NAME')); 

またはケーキ3+ config/app.php

//'baseUrl' => env('SCRIPT_NAME') 
関連する問題