我怎样才能用正确的.htaccess重定向?

问题描述 投票:1回答:1

这时我工作的一个网站项目。我只有一个问题。我的.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它会工作。

对不起,我的英文不好(我是荷兰人)

php apache .htaccess
1个回答
2
投票

因为正则表达式RewriteRule ^memberlist memberlist.php只检查如果路径与mydomain.com/memberlist/show/A开始规则^memberlist将匹配甚至memberlist

相反,写的第一条规则是:

RewriteRule ^memberlist$ memberlist.php

$意味着会员后的字符串必须结束。这意味着它只会匹配mydomain.com/memberlist

要添加,可以方便的与本网站测试规则:https://htaccess.madewithlove.be/ 它会告诉你哪些规则匹配给定的URL。请记住,第一个匹配的规则将被选择。这意味着另一种解决方案将只是扭转你的规则,以便更具体的排在最前面。

© www.soinside.com 2019 - 2024. All rights reserved.