我想在本地主机上重写我的 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¶m1=$2 [NC,L]
仅用于站点的参数“P”效果很好
获取第二个参数和index.php
获取并回显第二个参数也有效
但是点击菜单点不再起作用
带有 a 标签的链接看起来像
<a href = "projcet">Projekt</a>
或 <a href = "acp">ACP</a>
如您所见,如果我单击 acp(带有 href =“acp”的链接),它不会更改第一个参数。它改变了第二个,链接不再有效。
你能帮助我吗?你能告诉我我的 htaccess 文件中做错了什么吗?
我尝试更改 URL,但不起作用。我在最后一天多次尝试和错误编辑了 htaccess 文件,这是我得到的最好结果。出现的 Stayoverflow 的其他可能性对我没有帮助。
带有 a 标签的链接看起来像
或<a href = "projcet">Projekt</a>
<a href = "acp">ACP</a>
我认为这是你的问题。您在菜单中使用目录相对链接,但您似乎在每个页面上都使用该菜单。因此,如果用户位于
/project/test
,则指向 acp
的链接将链接到 /project/acp
。如果您使用相对于源的链接(在本例中为 /acp
),它将正确链接到您想要的 URL。这更多地与对 HTML 标记<a>
工作原理的基本了解有关,而不是与 .htaccess 相关。