0

いくつかの PHP-MySQL を使用して、独自の URL 書き換えルールを作成したいと考えています。コンセプトは、.htaccess にすべてのリクエストを index.php ファイルに送信するルールを設定することです。

RewriteRule ^([a-zA-Z0-9_-]+)/$     index.php
RewriteCond %{REQUEST_URI}  !\.(.+)$
RewriteRule ^(.*)([^/])$ http://%{HTTP_HOST}/$1$2/ [L,R=301].

$_SERVER['REQUEST_URI']そして php は、 andのようなスーパーグローバル var を介してすべてのパラメータを受け取りますexplode("/", $_SERVER['REQUEST_URI'])

関数の書き換え(){
    $paramKeys = array("", "locale", "page", "par1", "par2", "par3", "par4", "par5");   
    $paramValues = expand("/", $_SERVER['REQUEST_URI']);   

    foreach($paramValues as $key => $value){
        if (!is_array($key)) {
            $paramValues[$key] = htmlspecialchars(stripslashes(trim($value)));  
            if($key == 0){ //ただし、最初のスラッシュは URL の最後にあります
                継続する;
            }
            elseif($key == sizeof($paramKeys)){
                壊す;
            }
            そうでなければ $params[$paramKeys[$key]] = $value;
        }
        そうでなければ続行します。

    }
    $params を返します。
}

そして、要求された URL をデータベース内の URL と比較して、要求されたファイルが見つかった 200、移動された 301、または見つからない 404 の順に http ステータスを送信します。

私は悪い考えを持っていますか?そうでない場合、どうすればそれを完成させることができますか。ありがとうございました !

4

0 に答える 0