我點擊有以下路徑中的鏈接:在Apache2的href="/book/45"
轉換URI值接近GET變量
隨着ModRewrite:
# Enable URI Routing
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
會被重定向到我的index.php:
function getCurrentUri()
{
$basepath = implode('/', array_slice(explode('/', $_SERVER['SCRIPT_NAME']), 0, 0)) . '/';
$uri = substr($_SERVER['REQUEST_URI'], strlen($basepath));
if (strstr($uri, '?')) $uri = substr($uri, 0, strpos($uri, '?'));
$uri = '/' . trim($uri, '/');
$uri = filter_var($uri, FILTER_SANITIZE_URL);
return $uri;
}
$uri = getCurrentUri();
$routes = array();
$routes = explode('/', $uri);
if ($routes[1] == "book") {
...
require('../views/books.php?id=$routes[2]');
break;
...
}
我收到500內部服務器錯誤。沒有?id=$routes[2]
頁面加載正常。
我的目標是能夠在文件books.php中引用編號爲$_GET['id'];
的編號。
我通過傳遞變量解決了這個問題。 ''if($ routes [1] ==「book」){ $ book_id = $ routes [2]; require('../ views/books.php'); 休息; }' 這是因爲''/ views/books.php''上的腳本能夠看到''book_id''的變量 –