2014-01-24 93 views
4

好吧,我花了近4个小时在网站上搜索解决方案,另外2个小时搜索谷歌,当大多数网站复制粘贴数据时,这并不是很有用。所以在这里我决定寻求一点帮助。从一个文件夹创建子域名,但是拒绝文件夹访问

我创建了一个子域名,比如说http://admin.myhost.com,基本上从文件夹admin取数据。问题是,当我把http://myhost.com/admin的脚本仍然可以访问。假设我想让这个文件夹无法访问,将一个重定向到一个自定义文件,例如index.php?template=error404,当某个文件通过url http://myhost.com/admin执行时。我已将此行添加到.htaccess

RewriteRule ^admin(.*) /index.php?template=error404 [L] 

并且它结束了。

Options +FollowSymlinks 

Options -Indexes 

<FilesMatch "\.(tpl|ini|log)"> 
Order deny,allow 
Deny from all 
</FilesMatch> 

RewriteEngine On 

RewriteBase/
RewriteRule ^sitemap.xml$ index.php?map=google_sitemap [L] 
RewriteRule ^googlebase.xml$ index.php?map=google_base [L] 
RewriteRule ^download(.*) /index.php?template=error404 [L] 
RewriteRule ^admin(.*) /index.php?template=error404 [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) 
RewriteRule ^([^?]*) index.php?seo_url=$1 [L,QSA] 

它实际上只能如果我删除管理员文件夹中的空.htaccess(这只是说RewriteEngine叙述上),但是当我这样做,该网站http://admin.myhost.com抛出一个HTTP错误500,它是无法访问了。如果我在管理文件夹中述明规则RewriteEngine叙述再次.htaccess增加,子域重新开始工作,但同样,该文件夹是通过URL访问添加/admin

我似乎无法找到解决这个问题几个小时后。有没有办法做到这一点?难道我做错了什么?

+0

有你在简单地作出index.php文件试图(admin)文件夹。并只写只有线条 标题(“位置:任何网页网址”);所以它会重定向它。当一些机构访问admin文件夹... – daniyalahmad

回答

4

/admin/.htaccess有这样的规则:

RewriteEngine On 

# block access if HOSTNAME is not starting with admin.  
RewriteCond %{HTTP_HOST} !^admin\. [NC] 
RewriteRule^- [F] 

或者如果你想显示/index.php?template=error404然后

RewriteCond %{HTTP_HOST} !^admin\. [NC] 
RewriteRule^/index.php?template=error404 [L,QSA] 
+1

感谢上帝,我实际上编辑了最后一行重定向到自定义404错误,实际上抓住远程地址,并添加数据库的所有错误,请求uri,时间,网址,浏览器,和其他数据,这就是为什么我需要重定向而不是保护。非常感谢! – user3153340

+0

不用客气,很高兴它解决了问题,只要SO允许您将答案标记为已接受。 – anubhava

+2

是的,我正在等待被允许标记它,再次感谢,现在我的头痛慢慢消失... – user3153340

相关问题