私の Web アプリは、入力された URL に基づいてユーザー アカウントを割り当てます。それぞれの一意の URI が異なるメモ帳であるnotepad.ccのように動作する必要があります。
しかし、ユーザーがサーバーに存在するファイルを入力した場合、ユーザーにファイルの内容を見せたくありません。簡単に思えますが、私はこれを達成できませんでした。ファイルへのアクセスを防ぐために mod_rewrite を使用できることはわかっていますが、これを行うとすぐに、サーバーもファイルにアクセスできなくなります。
たとえば、というファイルがfoo
あり、ユーザーが入力したときにwww.mysite.com/foo
、ファイルの内容を表示したくありませんが、代わりに index.html にリダイレクトして新しいアカウントを生成するか、既に存在する場合はアカウントを読み込みます。
mod_rewrite でこれを行うにはどうすればよいですか?
編集: IP ホワイトリストを提案どおりに使用しようとしましたが、これも機能しませんでした。
これは私がこれまでに持っているものです。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.html [L]
RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.4$
RewriteRule ^(.+)$ index.html [L]
入力した URI が既存のファイルを指しているかどうかにかかわらず、すべてが index.html にリダイレクトされます。ただし、192.168.1.4 でテストしても、index.html に必要な css と js ファイルが読み込まれません。