使用htaccess时出现404错误

时间:2016-03-19 18:41:47

标签: php apache .htaccess oop mod-rewrite

我有一点问题,我用htaccess重写我的网址。它工作一半.. 我在我的htaccess中使用:

RewriteRule ^admin$ index.php?page=admin [NC,L]
RewriteRule ^admin/$ index.php?page=admin [NC,L]
RewriteRule ^admin/?([a-zA-Z-]+)$ index.php?page=admin&subpage=$1 [NC,L]
RewriteRule ^admin/?([a-zA-Z-]+)/$ index.php?page=admin&subpage=$1 [NC,L]
#RewriteRule ^admin/?([a-zA-Z-]+)/?([a-zA-Z-]+)$ index.php?page=admin&subpage=$1&action=$2 [NC,L]
#RewriteRule ^admin/?([a-zA-Z-]+)/?([a-zA-Z-]+)/$ index.php?page=admin&subpage=$1&action=$2 [NC,L]
#RewriteRule ^admin/?([a-zA-Z-]+)/?([a-zA-Z-]+)/?([a-zA-Z-]+)$ index.php?page=admin&subpage=$1&action=$2&mode=$3 [NC,L]
#RewriteRule ^admin/?([a-zA-Z-]+)/?([a-zA-Z-]+)/?([a-zA-Z-]+)/$ index.php?page=admin&subpage=$1&action=$2&mode=$3 [NC,L]

这有效:

http://example.com/admin/editArticle/

但是当我这样做时,我找不到404 ..

http://example.com/admin/editArticle/editMode/22

控制器具有以下内容:

    if ($_GET['page'] == 'admin' && $_GET['subpage'] == 'editArticle' && $_GET['action'] == 'editMode' && !empty($_GET['mode'])) {
        echo 'Edit mode LOADED!';
        die();
        //$this->_model->setTemplate('articleEditMode');
    } elseif ($_GET['page'] == 'admin' && !empty($_GET['subpage'])) {
            $this->_model->setTemplate($_GET['subpage']);
        }

这是我推送到页面的按钮:

<a href="'.BASE_URL.'/admin/editArticle/editMode/'.$row['id'].'/">Edit article</a>

在那里得到错误我有什么不对? 即使我在索引中执行var_dump。我不能达到它。我总是得到404 ..

1 个答案:

答案 0 :(得分:1)

尝试:

RewriteRule ^admin/?$ index.php?page=admin [NC,L]
RewriteRule ^admin/([a-zA-Z-]+)/?$ index.php?page=admin&subpage=$1 [NC,L]
RewriteRule ^admin/([a-zA-Z-]+)/([a-zA-Z-]+)/?$ index.php?page=admin&subpage=$1&action=$2 [NC,L]
RewriteRule ^admin/([a-zA-Z-]+)/([a-zA-Z-]+)/([a-zA-Z0-9-]+)/?$ index.php?page=admin&subpage=$1&action=$2&mode=$3 [NC,L]

无需添加一个/$而另一个不添加/?$。您可以使用<div class="playbox"> <div class="mp3buy"> ... content ... </div> </div>

相关问题