htaccessヘルプ、URLから文字列を削除します
-
29-09-2019 - |
質問
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サーバーに任せます。