gpt4 book ai didi

Apache mod_rewrite 问题

转载 作者:行者123 更新时间:2023-12-05 00:36:20 25 4
gpt4 key购买 nike

我正在尝试将每个请求发送到 www.example.com/user/www.example.com/user.php?id=0使用这个

RewriteRule ^user/$ user.php?id=0

基本上,如果有人访问 www.example.com/user/如果没有用户 ID,站点将默认为 id = 0 .

但是,当我输入 www.example.com/user/ 时Apache 似乎只是为 user.php 文件提供服务,完全忽略了 RewriteRule。知道为什么会这样吗?

谢谢你。

我应该提一下,这只有在我使用 时才会发生。 URL 中的相同词 作为 php 文件的名称。例如,如果我要使用
RewriteRule ^yes/$ user.php?id=0
前往 www.example.com/yes/将应用 RewriteRule 就好了。
因此,Apache 似乎在寻找具有该名称的文件并忽略 RewriteRule。
不,添加 [L] 标志没有帮助。

这是我的.htaccess:
RewriteEngine On
RewriteRule ^user/$ user.php?id=0
RewriteRule ^user/([0-9]+)$ user.php?id=$1

最佳答案

尝试这个:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^user/$ user.php?id=0 [L,NC,QSA]
RewriteRule ^user/([0-9]+)/?$ user.php?id=$1 [L,NC,QSA]

[L] 标志导致 mod_rewrite 停止处理规则集。在大多数情况下,这意味着如果规则匹配,则不会处理其他规则。这对应于 Perl 中的最后一个命令,或 C 中的 break 命令。使用此标志来指示应立即应用当前规则而不考虑其他规则。

来自: http://httpd.apache.org/docs/current/rewrite/flags.html#flag_l

关于Apache mod_rewrite 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8279347/

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