具有cookie和多个条件的htacces(如果存在,则为else)

时间:2018-06-21 15:56:11

标签: php apache .htaccess mod-rewrite

我正在尝试使用Cookie保护带有.htaccess的目录。重写规则会将用户发送到基本目录中的登录名(php)。有用。 当用户登录并获取Cookie时,脚本会将他重定向到目录.htaccess,在该目录中我必须制定其他重写规则。问题是.htaccess无法识别cookie,并导致循环返回到登录名,而该登录名却可以识别并重定向到目录。 我的Apache>> 2.4 with php7.0

在我的.htaccess中,我有:

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{HTTP_COOKIE} !(utente_xxx) [NC,OR]
    RewriteRule ^.*$ http://www.domain.xxx/login.php [R,L]

    # if a directory or a file exists, use it directly
    RewriteCond %{REQUEST_FILENAME} !-f

    # otherwise forward it to index.php
    RewriteRule . index.php
</IfModule>

我已经用Google搜索过,发现使用Apache> 2.4可以使用If-Else,我尝试使用它,但是我不是该语法的专家,并且我收到了一个内部服务器错误,错误为“。 htaccess:无法解析条件子句:语法错误,日志中出现意外T_OP_NOT”。

这是我的.htaccess代码:

<If "%{HTTP_COOKIE} !(utente_xxx)">
   RewriteRule ^.*$ http://www.domain.xxx/login.php [R,L]
</If>
<Else>
<If "%{REQUEST_FILENAME} !-f">
   RewriteRule . index.php
   </If>
</Else>

有人可以帮助我吗? 感谢andvance

1 个答案:

答案 0 :(得分:0)

* UPDATE

解决了!我用过:

<IfModule mod_rewrite.c>
    RewriteEngine on

    # if a directory or a file exists, use it directly
    RewriteCond %{HTTP_COOKIE} (utente_xxx) [NC]
    RewriteCond %{REQUEST_FILENAME} !-f

    # otherwise forward it to index.php
    RewriteRule . index.php

        RewriteCond %{HTTP_COOKIE} !(utente_xxx) [NC]
    RewriteRule ^.*$ http://www.domain.xxx/login.php [R,L]

</IfModule>