質問

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

http://www.domain.com/index.php/members/register, 、しかし、私がこのようなURL構造を持っている他のページ、 http://www.domain.com/category/products/id/5, 、htaccessを使用してindex.phpを削除し、必要に応じてスラッシュを削除できることを知りたいですか?これをどうやってやろうと思いますか?

役に立ちましたか?

解決

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

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

ただし、リンクが含まれていないドキュメントをアプリケーションに提供するように、最初から適切なURLをより適切に使用する必要があります /index.php.

他のヒント

index.php/コントローラー/アクションをグローバルに書き直したい場合

この.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サーバーに任せます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top