htaccess 具有 2 个或更多参数使链接无用并且链接不再起作用(菜单链接)

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

我想在本地主机上重写我的 URL。第一个参数“p”是页面。所有其他参数“param1”-“paramX”应该在我需要时起作用。只需要一个参数“p”,它就可以正常工作。但现在我想编辑 URL 中的第二个参数,并且只想先回显它。这也有效。但是,当我单击菜单点时,仅使用参数“p”作为链接,它无法正常工作。我没有收到任何错误,但参数“p”没有改变,因为它应该改变,但“param1”改变了,我的菜单不再打开任何正确的站点。我是 htaccess 的初学者,希望你能帮助我。下面我贴一些截图

htaccess 文件

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([0-9a-zA-Z]+)$ index.php?p=$1 [NC,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([0-9a-zA-Z]+)/([0-9a-zA-Z]+)$ index.php?p=$1&param1=$2 [NC,L]

仅用于站点的参数“P”效果很好

获取第二个参数和index.php

获取并回显第二个参数也有效

但是点击菜单点不再起作用

带有 a 标签的链接看起来像

<a href = "projcet">Projekt</a>
<a href = "acp">ACP</a> 

如您所见,如果我单击 acp(带有 href =“acp”的链接),它不会更改第一个参数。它改变了第二个,链接不再有效。

你能帮助我吗?你能告诉我我的 htaccess 文件中做错了什么吗?

我尝试更改 URL,但不起作用。我在最后一天多次尝试和错误编辑了 htaccess 文件,这是我得到的最好结果。出现的 Stayoverflow 的其他可能性对我没有帮助。

php .htaccess url parameters hyperlink
1个回答
0
投票

带有 a 标签的链接看起来像

<a href = "projcet">Projekt</a>
<a href = "acp">ACP</a>

我认为这是你的问题。您在菜单中使用目录相对链接,但您似乎在每个页面上都使用该菜单。因此,如果用户位于

/project/test
,则指向
acp
的链接将链接到
/project/acp
。如果您使用相对于源的链接(在本例中为
/acp
),它将正确链接到您想要的 URL。这更多地与对 HTML 标记
<a>
工作原理的基本了解有关,而不是与 .htaccess 相关。

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