在某些情况下需要更改RewriteRule

时间:2016-02-02 12:26:11

标签: php .htaccess mod-rewrite model-view-controller rewrite

我的.htaccess文件包含下一条规则:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) index.php?view=$1 [L,QSA]

mysite.com?view=catalog之类的网址现在与mysite.com/catalog

类似

但我有?do=value的条件。
其中一个条件是LogOut功能mysite.com/?do=logout。 它的核心工作。 但是对于?do的其他合同,它不起作用。
例如?do=extend&id=1?do=delete&id=1。 也许我需要更改我的RewriteRule以排除?do=value

以下是SEF网址功能:

function humanURL(){
     $link = mysqli_connect(HOST, USER, PASSWORD, DB) or      die(mysqli_error($link));

     $url_parameters = array();

     $query_string = str_replace("view=","",trim($_SERVER['QUERY_STRING']));

     $query_string = urldecode($query_string);

     $query_params = explode("/",$query_string);

     foreach ($query_params as $id =>$query_param)
        if ($query_param != "")
     $url_parameters[] = clear($query_param);

  return $url_parameters;
}

以下是我的SEF网址数组:

$url_parameters = humanURL();
$view         = $url_parameters[0];
$GET_PARAM    = $url_parameters[1];
$GET_VALUE    = $url_parameters[2];
$GET_PAGE     = $url_parameters[3];
$GET_PAGE_VAL = $url_parameters[4];

这是我对index.php

的包含
<?php if(isset($view)):?>
    <?php  include_once $view.'.php';?>
<?php else: ?>
    <?php  include_once 'catalog.php';?>
<?php endif; ?>

除了?do=value&value=1

之外,这是do=logout返回的错误消息
  

警告:include_once(do = extend&amp; id = 19.php):无法打开流:否   这样的文件或目录...

比任何帮助都多。如果有人需要更详细的信息,我将编辑此主题

0 个答案:

没有答案