url重写不会返回$ _GET

时间:2013-11-03 19:02:45

标签: php regex apache .htaccess mod-rewrite

我在网站上设置了一些url rewritte规则。

其实我在localhost

我在.htaccess中设置了这个

php_flag output_buffering on
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^p/([^/]*)\.html$ /?p=$1 [L]

Actualy url rewrite确实有效(我在css,js和lib php的标题中添加了一个基本的href

我遇到的麻烦是它没有返回$ _GET参数。

我已经写了一个函数,用于将页面包含在我的文档的主框架中,所以我们有了这个

function includePage(){
    if(isset($_GET['p'])){
        $page = mysql_real_escape_string($_GET['p']);
        if(file_exists('p/'.$page.'.phtml')){
            include('p/'.$page.'.phtml');
        }else{
            include('p/404.phtml');
        }
    }else{
        include('p/accueil.phtml');
    }
}

Actualy它不起作用它每次在其他条件下都会返回给我。

我试过做var_dump($_GET['p'])它给我一个未定义的var

网址如下:

index.php / p / realizations所以param $ _GET ['p']在这种情况下应该等于'realizations',实际上它不起作用。

我不知道我哪里错了。我做了一些研究但没有成功。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

尝试此规则:

RewriteEngine On
RewriteRule ^index\.php/p/([^/.]+)(\.html)?$ ?p=$1 [L,NC,QSA]