我有一个网站从子域运行它的CMS。 CMS受密码保护,但由于我的公司有固定的IP,我还想阻止所有未在公司内访问CMS的人。
所以我将以下内容添加到子域的.htaccess文件中:
Allow from 1.2.3.4
Deny from all
1.2.3.4是我假的固定公司IP
这很好用,但是我在CMS中运行的脚本没有崩溃,因为它们出现 403 Forbidden 错误。例如,在使用php函数getimagesize()
时会发生这种情况。
Warning: getimagesize(http://sub.domain.com/img/image.jpg)
[function.getimagesize]: failed to open stream: HTTP request failed!
HTTP/1.1 403 Forbidden in /path/to/file/sub.domain.com/fpdf.php on line 1350
我怎样才能解决这个问题?
此外,我想知道如何将没有IP 1.2.3.4的所有人重定向到http://www.domain.com。
答案 0 :(得分:2)
您还需要添加localhost
:
Allow from 1.2.3.4
Allow from 127.0.0.1
Deny from all
答案 1 :(得分:0)
您可以使用mod_rewrite
规则进行更精细的控制,将用户重定向到允许的IP列表之外的主页。
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^(1\.2\.3\.4|127\.0\.0\.1)$
RewriteCond %{REQUEST_URI} !\.(?:jpe?g|gif|bmp|png|tiff|css|js)$ [NC]
RewriteRule .+ http://www.domain.com/? [L,R]
我还添加了127.0.0.1
(localhost),您可以在允许列表中添加任意数量的内部IP。