我想使用几个 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].
并且 php 将通过一个超级全局变量(如$_SERVER['REQUEST_URI']
and )获取所有参数explode("/", $_SERVER['REQUEST_URI'])
。
函数重写(){ $paramKeys = 数组(“”、“区域设置”、“页面”、“par1”、“par2”、“par3”、“par4”、“par5”); $paramValues = explode("/", $_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; } 否则继续; } 返回$参数; }
并将请求的 URL 与我的数据库中的 URL 进行比较,以按请求的文件找到 200、移动 301 或未找到 404 的顺序发送 http statut。
我有坏主意吗?如果没有,我该如何完善它。谢谢 !