0

私の 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 ファイルが読み込まれません。

4

1 に答える 1

0

問題を正しく理解しているかどうかはわかりませんが、これは役に立ちません:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.4$
RewriteRule ^(.+)$ index.html [L]

RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.4$
RewriteRule ^(.+)$ index.html [L]
于 2013-06-03T08:37:15.060 に答える