我差不多找到了在某些页面上显示.html文件的方法。
在这种情况下,我希望test.html显示在http://www.example.com/categories/AnyPageThatExcistsInCategories
上我发现以下代码适用于/ categories。
<?php if ($_SERVER['REQUEST_URI'] == '/categories/') { include 'test.html';} ?>
我只需要关于如何获得它的黄金提示也可以在/ categories / ThisCanBeAnything和类别/ ThisCanBeAnything / AndThisAlso等页面上工作 server config是nginx。
谢谢
答案 0 :(得分:1)
您可以查看请求uri是否以字符串&#39; / categories /&#39;开头:
<?php
$request_uri = '/categories/foo';
if (strpos($request_uri, '/categories/') === 0 )
{
include 'your.html';
}
用$_SERVER['request_uri']
替换$ 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;
}
您可能希望不匹配确切的字符串&#39; / categories /&#39;,如果是这样,您可以调整条件:
if(
strpos($request_uri, '/categories/') === 0
&& $request_uri !== '/categories/'
) {}
答案 1 :(得分:0)
Progrock的例子可以正常工作,但这是使用正则表达式匹配而不是strpos的另一个例子,以防你好奇!
<?php
if (preg_match("/\/categories\/.*/", $_SERVER['REQUEST_URI'])) {
include 'test.html';
}
?>