解决!
首先,我知道我可以使用“?page = ...”,但我不喜欢那个变量在我的URL中。现在经过一些搜索后,我发现一个网站使用$ _GET ['page']而不在URL中显示“?page =”。
但是我在代码中挣扎了一番。我似乎无法获得此代码的工作。我知道它适用于其他网站,但不适用于我的网站。我似乎无法找到它在其他网站上的工作原理。
这是菜单代码:
<li><a href="index.php">Home</a></li>
<li><a href="even_voorstellen">Even voorstellen</a></li>
<li><a href="de_kennismaking">De kennismaking</a></li>
,这是PHP代码:
$sExpressie = "(http:|ftp:|shttp:|www.|.php|.pl|.cgi|.asp|index.php)";
if(isset($_GET['pagina']) && eregi($sExpressie,$_GET['pagina']))
{
include("pages/home.php");
}
else
{
if(isset($_GET['pagina']) && file_exists('Pages/' . $_GET['pagina'] . ".php"))
{
include('pages/' . $_GET['pagina'] . ".php");
}
else
{
include("pages/home.php");
}
}
我不明白这个代码是如何工作的。在我的网站中,“$ GET ['pagina']”永远不会被填满,这是合乎逻辑的。但是如何在其他网站上填写?
非常感谢大家! 解决方案:
以下内容添加到您的.htaccess文件:
RewriteEngine On
RewriteRule ^([A-Za-z0-9-]+)/?$ pages/$1.php [NC,L]
阅读'.htaccess' – AbraCadaver 2015-02-10 16:40:34
正如@AbraCadaver所说,.htaccess是你想要的,但是当你在它的时候:[阅读PHP文档](http://php.net/eregi)。 'ereg'和'eregi'已被_deprecated_(并已使用多年),请使用'preg_ *'来代替 – 2015-02-10 16:41:52
Wordpress可以像这样工作,你可以在那里看看。 – 2015-02-10 16:43:01