私は自分のWebサーバーで非常に単純なことを達成しようとしています。.phpで終わるURLを/で終わらせたいです。たとえばwww.example.net/something.phpをwww.example.net/somethingにするか、www.example.net / folder / subfolder/something.phpをwwwにします。 example.net/folder/subfolder/something。さらに、www.example.net / folder / something.php?something =whatever/を持っていてもかまいません。URLの最後の.phpを削除することだけに関心があります。私は他の多くの中でこのコードを使用しました。
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .*[^/]$ $0/ [L,R=301]
RewriteRule (.*)/$ $1.php [L]
ただし、これは一部のページでのみ機能します。たとえば、私のwww.example.com/folder/contactus.phpページでは機能しません。代わりに、404ページを取得します。しかし、それはwww.example/folder/faq.phpで完全に機能します。さらに、コードのさまざまな部分でfile_get_contents()phpリクエストを作成します。内部リクエスト(私のphp関数)が影響を受けないようにこれらのルールを調整する方法はありますか?基本的に、.phpファイルに保持されている他のphp関数に影響を与えることなく、ブラウザーに.phpの終わりなしでURLを表示させたいだけです。私の意図をさらに明確にするために:文字列処理関数を使用して、設定した変数に基づいてphpファイルから特定のテキスト行を抽出します。しかし、現在の書き換えルールでは、ファイル名から拡張子が削除されているため、phpファイルが見つかりません(推測です)。
$file_contents = file_get_contents($filename);
現在、共有のgodaddyホストアカウントでLinuxサーバーを使用しています。