我希望答案会如此简单,我想哭,但我似乎无法弄清楚。我是 mod_rewrite 的新手。
我想将我的链接从 domain.com/?p=about 更改为 domain.com/about* / * (带有斜杠)并且它工作正常,但是每当我转到一个链接时,它都会附加新的链接到网址的背面。例如,我有一个 about 和一个 contact 链接。如果我点击 about,它会导航到 domain.com/about/,然后如果我点击 contact,它会导航到 domain.com/about/contact/,并将继续将链接添加到 URL 的末尾。如果我在 domain.com 并单击一个链接(在这种情况下是关于),它将转到 domain.com/about/ 如果我再单击大约 4 次,我的地址栏将显示“domain.com/ about/about/about/about/about/" 我在下面的一个非常简单的例子中复制了这个,我做错了什么?
.htaccess
RewriteEngine On
RewriteRule ([a-zA-Z0-9]+)/$ index.php?p=$1
索引.php
<a href="about/">about</a> | <a href="contact/">contact</a><br><br>
<?php
if(!isset($_GET['p'])) {
echo "home";
} else {
echo $_GET['p'];
}
?>
谢谢您的帮助!
编辑:如果我使用绝对路径,它可以正常工作,但如果我不是绝对必须这样做,我宁愿不这样做。
编辑2:添加
RewriteBase /
断开链接。他们似乎要去 domain.com/about/ 和 .../contact/,但我得到一个 404 - 我假设我使用的规则与我进行链接的方式不兼容,这就是为什么我也包括了 index.php。