如何使用.htaccess重定向此权限

时间:2010-05-08 21:21:55

标签: .htaccess mod-rewrite

是的,Iam试图从网络本身中取出_PRIVATE文件夹

我无法弄清楚我是如何进行/../重定向的。因为这发生在Apache中,它应该以某种方式允许它。

我想要../因为有时_PUBLIC是www root,取决于那里的大量webhosts,我想让它在两个设置上工作= /

结构

/ (www root)
    - .htaccess #1
    - _PUBLIC/
        - .htaccess #2
        - images/
        - javascripts/
        - styles/
     - _PRIVATE/
        - pages/
            - login.php



.htaccess #1
    * -> /_PUBLIC/*

.htaccess #2
    user/login -> /../_PRIVATE/pages/login.php

这就是我的.htaccess文件现在的样子

.htaccess #1
    RewriteCond $1 !^_PUBLIC
    RewriteRule ^(.*)$ /_PUBLIC/$1 [L]

.htaccess #2
    RewriteRule ^user/login/? /../_PRIVATE/pages/login.php [L]

2 个答案:

答案 0 :(得分:0)

我认为您应该在/

之前删除第一个..
RewriteRule ^user/login/? ../_PRIVATE/pages/login.php [L]

这不起作用吗?

更新:

如果您可以{_ 3}}和http://yoursite/_PUBLIC访问_PUBLIC和_PRIVATE,那么您应该只重写

RewriteRule ^user/login/? /_PRIVATE/pages/login.php [L]

END UPATE

另外:您应该能够通过将前缀_PUBLIC添加到#2中的规则来合并两个.htaccess文件 - 这样您就不必使用..

答案 1 :(得分:0)

请尝试以下规则:

RewriteCond $1 !^_(PUBLIC|PRIVATE)($|/)
RewriteCond %{THE_REQUEST} !^[A-Z]+\ /_(PUBLIC|PRIVATE)[/?\ ]
RewriteRule ^(.*)$ /_PUBLIC/$1 [L]

RewriteRule ^user/login/? /_PRIVATE/pages/login.php [L]