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