gpt4 book ai didi

apache - .htaccess 重写规则多页

转载 作者:行者123 更新时间:2023-12-01 23:43:59 24 4
gpt4 key购买 nike

几个小时以来一直在努力解决这个问题,但没有成功。

我有一个网站 www.example.com/user.php?username=john我使用 .htaccess 让它看起来很像 www.example.com/user/john我使用以下 .htaccess 重写规则并且它有效

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*/([a-zA-Z0-9_-]+)|([a-zA-Z0-9_-]+))$ ./user.php?username=$1 [L]

问题

我有一个类似 www.example.com/profile.php?username=john 的个人资料页面我还使用以下 .htaccess 使其看起来像 www.example.com/profile/john

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*/([a-zA-Z0-9_-]+)|([a-zA-Z0-9_-]+))$ ./profile.php?username=$1 [L]

现在,这根本不起作用,但是当我删除第一个重写规则(rule user.php)并将其放在第二个重写规则(rule profile.php)之后时,我的个人资料页面可以工作,反之亦然,

所以基本上我放置的规则首先决定了我可以使用我的 URL 访问的页面。

我需要它同时适用于两个页面。我同意你在 .htaccess 重写方面还没有达到初学者水平。

提前致谢。

最佳答案

能否请您尝试以下。由于 URL 具有其唯一性,因此最好检查它们的 %{REQUEST_URI} 值中的条件,我正在检查 REQUEST_URI 是否从 user 开始,然后寻找 1 条规则,如果它从 profile 开始,然后再换一个,这样就不会造成混淆(我相信你为此尝试了很好的荣誉,但由于条件之间没有隔离,因此它的引擎令人困惑恕我直言)。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/user/([\w-]+)/?$
RewriteRule ^.*$ /user.php?username=%1 [NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/profile/([\w-]+)/?$
RewriteRule ^.*$ /profile.php?username=%1 [NC,L]

关于apache - .htaccess 重写规则多页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64546011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com