你可以看到,如果請求URI以字符串 '/分類/' 開頭:
<?php
$request_uri = '/categories/foo';
if (strpos($request_uri, '/categories/') === 0)
{
include 'your.html';
}
替代的$ REQUEST_URI以上$_SERVER['request_uri']
值。假設你在前端控制器中有這個邏輯。
另外:
<?php
$request_uris = [
'/categories/foo',
'/categories/',
'/categories',
'/bar'
];
function is_category_path($request_uri) {
$match = false;
if (strpos($request_uri, '/categories/') === 0)
{
$match = true;
}
return $match;
}
foreach ($request_uris as $request_uri) {
printf(
"%s does%s match a category path.\n",
$request_uri,
is_category_path($request_uri) ? '' : ' not'
);
}
輸出:
/categories/foo does match a category path.
/categories/ does match a category path.
/categories does not match a category path.
/bar does not match a category path.
在使用中:
if(is_category_path($_SERVER['REQUEST_URI'])) {
include 'your.html';
exit;
}
您可能需要確切的字符串 '/類別/' 不匹配,如果這樣你可以調整條件:
if(
strpos($request_uri, '/categories/') === 0
&& $request_uri !== '/categories/'
) {}
我不確定你的服務器環境,但是如果你使用Apache並且啓用了重寫模塊,你可以這樣做。 – Progrock
抱歉忘了提及它。它運行在nginx上。 我提供的代碼確實工作完美,但只在/類別和不/類別/ AnythingElse。 – razz
您可以在nginx下使用重寫規則:https://www.nginx.com/blog/creating-nginx-rewrite-rules/ – Progrock