すべての開発者について、すべてのリクエストを に転送し、index.php
すべての css、js、jp(e)g、pdf、zip などを除外します。
.htaccess
DirectoryIndex index.php
#ErrorDocument 404 /index.php?page=404
RewriteEngine on
RewriteCond %{REQUEST_URI} !\.(.+)$
RewriteRule ^(.*)([^/])$ http://%{HTTP_HOST}/$1$2/ [L,R=301]
RewriteCond %{REQUEST_URI} !\.(ico|docx|php|png|css|jpe?g|js|pdf|txt|mp3)$
RewriteRule ^(.*)$ index.php
次に、PHP ブート コードで、
変数を設定してコンテンツを提供し、必要$_GET
に応じて後で使用します....例:
<?php
function rewrite(){
$link = $_SERVER['REQUEST_URI'];
$params = array("base_url", "locale", "page", "action", "par1", "par2", "par3", "par4");
$extraParams = preg_match("/\?/i", $link, $extraParamsMatches);
if($extraParams){
$link = explode("?", $link);
$link = $link[0];
}
$link = explode("/", $link);
$i = 0;
$vals = array();
foreach($link as $key => $value){
if($params[$key] == "base_url") $value = $_SERVER['SERVER_NAME'];
//if(empty($value)) continue ;
$vals[$params[$key]] = $value;
if($i == sizeof($params)-1){
break;
}
$i++;
}
return $vals;
}
}
?>
重要
: このコードを編集して、関数で使用する前にデータをサニタイズする例のセキュリティを向上させることができます ;-) 要求されたページが物理的に見つからない場合、または php またはデータベースの配列で見つからない場合はheader('Location : ',true, 404);
、404 ページを送信して渡すことができます !!