2

Web サイトの URL 書き換えに関するいくつかのルールを設定しました。

実際、私はローカルホストにいます

これを .htaccess に設定しました

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

実際、URL の書き換えは機能します (css、js、および lib php のヘッダーに base 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');
    }
}

実際には動作しません。else 条件のたびに返されます。

var_dump($_GET['p'])は未定義のvarを返します

URL は次のようになります。

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 に答える