0

我的 Web 应用程序根据输入的 URL 分配用户帐户。它的行为应该类似于notepad.cc,其中每个唯一的 URI 都是不同的记事本。

但是如果用户输入我服务器上存在的文件,我不希望用户看到文件的内容。这似乎很简单,但我一直无法做到这一点。我知道我可以使用 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 回答