htaccess重定向文件index.php或login.php

时间:2014-03-28 10:17:39

标签: php apache .htaccess mod-rewrite redirect

我有一些问题

This website contains a loop of redirects

我构建了一个专有的MVC,其中我使用了一个动态mod_rewrite,它从存储在文件router.php中的数组中读取

我有目录和文件的结构:

.htaccess
wwwroot
--router.php
--index.php
--login.php
--ajax.php

我的router.php

'router' =>   array(
                    array( 
                        '/',  
                        array('controller' => 'Start', 'action' => 'dashboard'), 
                        array('methods' => 'GET,POST', 'name' => '/'  )
                    ), // dashboard
                    array('/login', array('controller' => 'Login', 'action' => 'loginForm'), array('methods' => 'GET,POST', 'name' => 'form-login')),
                    array('/message/lista/', array('controller' => 'message', 'action' => 'messageList'), array('methods' => 'GET', 'name' => 'message_list')),
                    array('/message/add/', array('controller' => 'message', 'action' => 'createMessage'), array('methods' => 'POST,GET', 'name' => 'message_add')),
                    array('/message/lista/:page', array('controller' => 'message', 'action' => 'list'), array('methods' => 'GET', 'name' => 'message_list', 'filters' => array('page' => '(\d+)')))

档案.htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?system.domain.com$ [NC]
RewriteCond %{REQUEST_URI} !wwwroot/
RewriteRule (.*)$ wwwroot/ [L]
RewriteRule ^login(/)?$ wwwroot/login.php [L,NC,QSA]
RewriteRule ^(.*)(/)?$ wwwroot/index.php [NC,L]

文件index.php

...
<!-- you are not logged in -->
if (UserSession::validLogin() != true) {
    $logoutUrl = 'login'; // redirect to a log file url http://wwww.system.domain.com/login
        header('Location: ' . $logoutUrl );
    exit();
} else {
 <!-- read the url and redirect to the class
  eg. http://wwww.system.domain.com/task/add -->
}
...

当我打开http://system.domain.com时,我看到了这条消息 This website contains a loop of redirects

如果在index.php中调用此脚本块来检查用户是否已登录,则页面正确加载(如果我手动键入地址) ? http://system.domain.com/message/add? 当您取消注释这段代码时,问题就开始了

在htacces中,如果没有地址/登录,我甚至尝试输入index.php文件加载时间 文件.htaccess

This website contains a loop of redirects

不幸的是对我不起作用:(问题是我不知道如何强制重新加载文件index.php或login.php,以便当他使用“标题”不循环时。

任何人都可以帮助我吗?

0 个答案:

没有答案