我正在测试使用php动态显示页面链接的情况,并且能够使用index.php中的以下代码来实现它:
<a href="index.php">Home</a>
<a href="index.php?page=about">About</a>
<a href="index.php?page=contact">Contact</a>
<a href="index.php?page=news">news</a>
<div class="content">
<?php
if( !empty($_GET['page']) ) {
$allPages = scandir('pages', 0);
unset($allPages[0], $allPages[1]);
$page = $_GET['page'];
if( in_array($page . '.inc.php', $allPages) ) {
include('pages' . '/' . $page . '.inc.php');
} else {
echo "page not found";
}
} else {
include('pages' . '/home.inc.php');
}
?>
</div>
附带,您还将找到我的目录结构的图像。
我有两个问题:
?page=contact
,我可以使用.htaccess文件将其隐藏吗?答案 0 :(得分:0)
您无法在url中隐藏查询字符串,但是可以添加.htaccess规则以将url重写为更漂亮的内容。例如,index.php?page = test可以变成索引/测试。
#redirect /index.php?page=test to /index/test
RewriteCond %{THE_REQUEST} /page.php\?query=([^\s]+) [NC]
RewriteRule ^.+$ /page/%1? [L,R]
#rewrite /index/test to /index.php?page=test
RewriteRule ^page/(.*)$ page.php?query=$1 [L]