htaccess ファイルを使用して単純な書き換えルールを実行しようとしています。 XAMPP を使用してローカルホストでこのページをホストしています:
リーリーこの操作をリクエストする可能な方法は次のとおりです:
リーリー私がやりたいのは、次の URL のリクエストを上記の URL に書き換えることです。 リーリー
これを試してみましたが、404 エラーが発生しました。リーリー
いくつかの調査の後、別のオプションを試しました:リーリー
しかし、現在は内部リダイレクトの問題が多すぎますP粉3434089292024-01-11 16:05:46
これは、「内部リダイレクトが多すぎる」原因となる最初のルール (「.php 拡張子を隠す」) です。これは、services/Boat-Dealers.php
を (誤って) ターゲットにしているためです。リクエストは < code> に書き換えられます。 services/Boat-Dealers.php.php などこれは、condition (常に成功します) では、最終的に何をオーバーライドするかがチェックされないためです。 REQUEST_FILENAME
は期待したものではありません。 (ただし、これらのルールの順序を逆にすれば、この差し迫った問題は解決します。)
次のコメントを参照してください using-apache-rewrite-rules-in-htaccess-to-remove-html-causing-a-500-error" title=" での Apache rewrite の使用。 htaccess ルールの delete.html を記述すると 500 エラーが発生します">ServerFault の問題 に記載されているとおり)。
ルールの順序も間違っています。
.htaccess ファイルが
/naveesh/.htaccess (ドキュメント ルートではない) にあると仮定すると、完全な
.htaccess ファイルは次のようになります。このような:###
リーリー
文字列のスラッシュ接頭辞が削除されていることに注意してください。 No
RewriteBase ディレクティブはここでは必要ありません。相対 置換
は、.htaccess ファイルが配置されているディレクトリを基準としています。
MultiViews
serv URL パラメーターなしで
services.php として書き換えられます。 (一部の共有サーバーでは複数のビューが有効になっている場合があり、多くの競合が発生する可能性があります。)
さらに、リクエストされた URL ではオプションの末尾のスラッシュを許可すべきではありません。これにより、同じコンテンツを提供する 2 つの異なる URL (末尾にスラッシュがあるものと末尾にスラッシュがないもの) があるため、コンテンツの重複の問題が発生する可能性があります。 URL の例には末尾のスラッシュがありませんが、なぜこれを含める必要があるのでしょうか。オプションの末尾のスラッシュを許可する必要がある場合 (たとえば、非正規 URL を指している不正な受信リンクがある場合)、あるリンクを別のリンクに外部的にリダイレクトする必要があります。