所以,我目前正在用PHP构建一个REST API.

我设法让鼻涕虫在大部分时间里都能工作.

管理slug的HTACCESS文件位于文件夹本身(/users/)中.

RewriteEngine On
RewriteRule ^(.*)$ user.php?slug=$1 [L]

我try 添加另一行,但我认为我搞砸了(我在HTACCESS方面没有那么先进)

RewriteRule ^(.*)/keys$ keys.php?slug=$1 [L]

这没有做任何事情,它仍然返回用户对象.

推荐答案

RewriteRule ^(.*)$ user.php?slug=$1 [L]
RewriteRule ^(.*)/keys$ keys.php?slug=$1 [L]

第一条规则与everything匹配,因此第二条规则永远不会被处理.但由于第一条规则匹配everything,它也会在第二次通过重写引擎时重写自己(到user.php?slug=user.php).

您可以通过增加正则表达式的限制来解决这些问题.从你的示例URL来看,slugnumeric——在这种情况下,你可以限制正则表达式只匹配数字(0-9).

例如:

RewriteRule ^(\d*)$ user.php?slug=$1 [L]
RewriteRule ^(\d+)/keys$ keys.php?slug=$1 [L]

请注意,第一条规则还匹配一个空URL路径,即完全没有slug(就像您原来的规则一样).第二条规则不允许空的slug(它无论如何都不会匹配).

Php相关问答推荐

尽管包含目标日期,但日期范围比较仍有意外输出

PHP:从数组中获取唯一的数字组合

模型中的Laravel自定义查询字段

以编程方式更改新订单、已取消订单和失败订单的邮箱WooCommerce通知

使注册字段UserMeta值对于WooCommerce中的每个用户是唯一的

只收取WooCommerce中最高的运费

如何在execute语句中使用存储过程参数?

如何在PHP中组合日期范围

即使在WooCommerce购物车中添加了两次产品,也要将所有项目设置为空白行

如何用Ubuntu 22.04在VSCode中启用XDebug

PHP Match如何准确判断条件?

Composer自动加载器重复了子类的类文件路径

PHP使用三元运算符进行null合并(再次)

正则表达式请帮我从内容中找到这个词

Laravel 8:会话不适用

将 HTML 表单链接到 SQLite 数据库

使用 RSA 2048 公钥验证 RSA PKCS#1v1.5 SHA 256 签名

Symfony 在将它传递给 Twig 时是否从数据库中获取整个对象?

一个php应用程序可以实例化多个RNG吗

将参数传递给 laravel 9 工厂