I持つサイトディレクトリ内の.htaccessファイルに次の行:.htaccessファイルを編集する際のURLとディレクトリの一致の問題を回避するにはどうすればよいですか?
RewriteEngine On
RewriteRule ^([a-z]{1}[a-z0-9_-]{3,20})$ account.php?username=$1&%{QUERY_STRING}
それは例えばURLを受信した場合:
はhttp://localhost/samplesite/johnsmith
それは
http://localhost/samplesite/account.php?username=johnsmith
にそれを書き換えます
これは問題ありません。
サイトディレクトリにjohnsmithという名前のディレクトリがある場合、問題が発生します。
http://localhost/samplesite/johnsmith/?username=johnsmith
と書き換えて表示します。私はすべてのユーザーのアカウントページ機能を実装しようとしていますが、ユーザーがルートにいくつかのディレクトリのようなユーザー名を登録したい場合、その機能は中断しますか?要求されたURLが既存のディレクトリまたはファイルを表すかどうかを確認するために書き換え条件を追加しようとしました。
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
しかし、私はどのように処理するのか分かりません。
アカウントページの機能をユーザーに提供する方法がわかっている場合は、その点についてアドバイスをいただければ幸いです。
誰でもこのケースを解決するのに手伝ってもらえますか?ありがとうございました!
を
QSA
フラグを使用する必要がありますはい、最後に.htaccessファイルでの私の行は、あなたのコードのように見えます。しかし、問題はまだ解決されていません。私は同じディレクトリとユーザー名が利用可能な場合、それを解決する方法?または、この問題のある状況に対して、より良い解決策がありますか? – forbdn私の質問に対する最初の答えは問題を解決しませんでした!誰もが問題を防ぐ方法を知っていますか?これは、ディレクトリとアカウントのユーザー名の一致する名前にあります。機能は、Facebookのものと似ています。たとえば、http://www.facebook.com/johnsmith/と同じことをしたいと思います。私はあなたの助けに大変感謝しています! – forbdn
@forbdn私はあなたが.htaccessでこれを解決できるとは思わない。代わりに、レコードが存在するかどうかを確認するためにデータベースをチェックするために、すべてのリクエストが 'index.php'に最初に移動しなければなりません。もしそうでなければ、PHPはディレクトリが存在するかどうかをチェックしなければなりません。 –