从主文件夹转发请求到子文件夹

时间:2011-02-10 19:29:34

标签: php .htaccess mod-rewrite

我有以下文件结构:

  • 根文件夹
    • 申请文件夹(非公开)
    • 网站文件夹
      • scripts-,styles-和image-folders(public)
      • php包含文件夹(非公开)
      • 的index.php
      • .htaccess(用于重写目的)
    • 其他网站文件夹(admin,subdomain,...)
      • scripts-,styles-和image-folders(public)
      • php包含文件夹(非公开)
      • 的index.php
      • .htaccess(用于重写目的)
    • 资源文件夹(公开)

应用程序文件夹是一个包含共享PHP类的文件夹,只能由本地计算机访问。 resources 文件夹可以从任何地方访问,我将用户上传的文件存储在那里。

每个 site 文件夹只有一个处理请求的文件: index.php 。网址 www.example.com/site/item/5 已经被.htaccess文件重写为 www.example.com/site/index.php?q=item/5 。 index-script使用$ _REQUEST [“q”]。

我可以通过浏览 www.example.com/site www.example.com/admin www.example直接访问每个网站文件夹。 com / something ,因为所有人都使用他们适当的索引文件。

现在我只想在根目录中添加一些 .htaccess-file ,以便www.example.com重定向到www.example.com/site,而不会违反我的mod_rewrite规则。< /强>

如果有人可以请给我一些建议,因为我尝试的相关内容不能正常工作(www.example.com/admin应该仍然可以直接访问,...)

如果需要一些附加信息,我将很乐意提供。 谢谢!

2 个答案:

答案 0 :(得分:0)

尝试此规则:

RewriteRule ^$ /site [L,R]

这会将/的请求重定向到/site

答案 1 :(得分:0)

这是我实际使用的解决方案。

重写发动机 RewriteCond%{REQUEST_FILENAME}! - f
RewriteCond%{REQUEST_FILENAME}!-d
RewriteRule ^(。*)$ site / index.php?q = $ 1 [L,QSA]
RewriteRule ^ $ site / index.php [L,QSA]

可能我可以通过重写一下来省略最后一行,但至少它按预期工作!