0

URL から index.php を削除することは可能ですか? 基本的に、サイトのいくつかのページでは、この構造を持っていますが、

http://www.domain.com/index.php/members/registerですが、他のページにはhttp://www.domain.com/category/products/id/5のような URL 構造があり、知りたいです必要に応じて、htaccess で index.php と属性付きのスラッシュを削除することは可能ですか? どうすればこれを行うことができますか?

4

2 に答える 2

0

index.php / controller/actionをグローバルに書き換えたい場合

この.htaccess構成は、次のトリックを実行する必要があります。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule> 

この構成は、ファイル/ディレクトリがディスク上に存在するかどうか(つまり、要求がディスク上の実際のリソースと一致するかどうか)をApacheでチェックし、必要に応じて要求をフロントコントローラーに書き換えます。

したがってhttp://www.domain.com/resources/image.png、画像リソースを返す必要があります。そして、http://www.domain.com/user/show/5透過的に書き換える必要がありますhttp://www.domain.com/index.php/user/show/5

この構成では、アプリケーションURL内のすべてのindex.php参照を削除し、書き換えをWebサーバーに任せることができます。

于 2010-10-11T10:15:14.683 に答える
0

はい、できます。このルールでは、要求/index.phpされたものはすべて削除されます。

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /index\.php[/?\ ]
RewriteRule ^index\.php(/(.*))?$ /$2 [L,R=301]

ただし、最初から適切な URL を使用して、リンクに/index.php.

于 2010-10-11T16:53:42.893 に答える