いくつかの 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 ステータスを送信します。
私は悪い考えを持っていますか?そうでない場合、どうすればそれを完成させることができますか。ありがとうございました !