.htaccess或其他东西会在URL中添加其他内容。 PHP

时间:2013-05-18 17:22:52

标签: php .htaccess

我刚刚开始在我正在开发的网站上使用.htaccess。一切正常,但是当我尝试访问位于索引上的user.php文件时,我不断得到这个网址:

  

http://lifeline.andornagy.info/user/?url=user

在其他所有文件和地点上,它的效果非常好。

这是我根据URL调用不同页面的功能:

  public function lifeline() {
        global $templatePath;
        if ( isset($_GET['url']) && $_GET['url'] !== 'user'  ) {        
            $url = $_GET['url'];
            $result = mysql_query("SELECT * FROM posts WHERE url='$url' ");
            if ( !mysql_num_rows($result) ) {
                if ( file_exists($templatePath.'404.php') ) {
                    include_once($templatePath.'404.php');
                } else {
                    include_once('404.php');
                }
            } 
            while($row = mysql_fetch_assoc($result)){ 
                if ( $row['type'] === 'post' ) {
                    include_once($templatePath.'post.php');
                } elseif ( $row['type'] === 'page' ) {
                    include_once($templatePath.'page.php');
                }
            }
        } elseif ($_GET['url'] === 'user') {
            include_once($templatePath.'user.php');
        } else {
            include_once($templatePath.'index.php');
        }
    }

这是我的.htaccess文件。

Options +FollowSymlinks -MultiViews

RewriteEngine On

RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?url=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?url=$1

RewriteRule ^(.+)(\s|%20)(.+)$ /$1-$3 [R=301,QSA,L,NE]

ErrorDocument 404 /404.php

我希望我的网址如下:

  

http://lifeline.andornagy.info/user

没有/?url = user

抱歉,如果我听起来很吵闹。 :(

1 个答案:

答案 0 :(得分:1)

如果不仔细检查,.htaccess中的最后一个RewriteRule包含[R=301],这使其成为唯一能够“添加”(即重定向到您)/?user=x的规则。我会仔细研究最后一条规则。