此刻,我正在为网站设计项目。我只有一个问题。我的.htaccess无法正确重定向。
在我的项目中,用户可以注册,并且有一个成员列表。成员列表按A到Z排序,您可以在页面上选择它,如下所示: Click here单击字母时,它将向您显示在该特定字母上注册的用户
问题在于它不会像我在.htaccess中一样重定向
我尝试了很多事情并尝试进行搜索,但是找不到任何解决方法
.htaccess的外观如下:
RewriteRule ^memberlist memberlist.php
RewriteRule ^memberlist/show/(.*) memberlist.php?show=$1
这在PHP文件中
echo $content_1;
for($letter = 0; $letter <= 13; $letter++) {
echo "- <a href='/memberlist/show/".$array[$letter]."'>".$array[$letter]."</a> \n";
}
echo "-<br> \n";
for($letter = 14; $letter <= 25; $letter++) {
echo "- <a href='/memberlist/show/".$array[$letter]."'>".$array[$letter]."</a> \n";
}
echo "-<br> \n";
for($cijfer = 1; $cijfer <= 9; $cijfer++) {
echo "- <a href='/memberlist/show/".$cijfer."'>".$cijfer."</a> \n";
}
正如您在代码中看到的那样,我想将用户重定向到这样的特定字母:mydomain.com/memberslist/show/A,但是它不起作用,如果我执行mydomain.com/memberslist.php吗? show = A它将起作用。
对不起,我英语不好(我是荷兰人)
答案 0 :(得分:2)
规则RewriteRule ^memberlist memberlist.php
甚至对于mydomain.com/memberlist/show/A
也将匹配,因为正则表达式^memberlist
仅检查路径是否以memberlist
开头。
相反,将第一个规则写为:
RewriteRule ^memberlist$ memberlist.php
$
表示在成员列表之后字符串必须结束。这意味着它将仅匹配mydomain.com/memberlist
要添加,您可以通过以下站点轻松测试您的规则:https://htaccess.madewithlove.be/
它将向您显示哪些规则匹配给定的URL。请记住,将选择第一个匹配的规则。这意味着另一种解决方案就是颠倒您的规则,以便更具体的规则排在第一位。