.htaccess URL 重写规则在 Apache 上现有 WordPress 站点的子目录中不起作用

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

我正在尝试让重定向规则在子文件夹中工作,以便我可以重写以下网址:

https://www.somesite.co.uk/api/FormEntries.php?id=1

To(用户访问上述内容以提供更友好的 URL 的方式):

https://www.somesite.co.uk/api/FormEntries/1

地点:

  • php 文件的名称是第一个变量,因此可以有
    /api/OtherObject/1
  • 末尾的数字是记录的Id

这是 .htaccess 文件的内容,我只想影响这个子文件夹。 当使用在线测试人员时,他们似乎建议该规则有效,直到我添加

RewriteBase
值,但我也尝试将主要重写规则添加到顶层 .htaccess ,作为最后带有
[L]
标签的第一条规则,但我仍然无法让它工作。重写通常在服务器上工作,所以我不认为这是托管问题,但不确定 WordPress 是否会导致父文件夹中的任何其他冲突。

这些是 .htaccess 文件的内容:

RewriteEngine On
RewriteBase /api/
RewriteRule ^api/([a-zA-Z0-9_-]+)/?([0-9]+)?$ /api/$1.php?id=$2 [NC,QSA,L]

谢谢 罗宾

wordpress apache .htaccess mod-rewrite url-rewriting
1个回答
0
投票

以下规则在 htaccess 测试器中给出了正确的输出 url。

RewriteEngine On
RewriteRule ^api/(.*)\/(.*)                 api/$1.php?id=$2 [QSA,L]
© www.soinside.com 2019 - 2024. All rights reserved.