2

我在我的网站上为 url 重写设置了一些规则。

实际上我在本地主机上

我已经在 .htaccess 中设置了这个

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

实际上 url 重写确实有效(我在 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');
    }
}

实际上它不起作用,每次出现其他情况时它都会返回给我。

我试图做一个var_dump($_GET['p'])它返回给我一个未定义的变量

网址如下所示:

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

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

任何帮助将不胜感激。

4

1 回答 1

1

试试这个规则:

RewriteEngine On
RewriteRule ^index\.php/p/([^/.]+)(\.html)?$ ?p=$1 [L,NC,QSA]
于 2013-11-03T19:13:52.513 回答