[英]omitting “public” from URL using .htaccess rewrite
我有一个当前的REST API,其中的URL过去看起来如下:
example.com/public/products
example.com/public/products/123
我已将网址结构更新为:
example.com/products
example.com/products/123
问题是该REST API的当前用户仅连接到“公共” URL,因此此更新将给他们404错误。 如何在我的重写中添加规则,以便在没有“ public”的情况下处理对带有“ public”的URL的GET请求。
example.com/public/products -> example.com/products
example.com/public/products/123 -> example.com/products/123
我该如何写一个重写规则为我做这件事?
的.htaccess:
RewriteEngine On
RewriteRule ^public/(.*)$ $1 [R=301,L]
您可以在这里进行测试: http : //htaccess.madewithlove.be/
正则表达式:
^
匹配字符串的开头(在这种情况下为URL路径)。
public/
匹配字符串“ public /”。
(.*)
括号使它成为捕获组; .
匹配除换行符以外的任何字符; *
匹配零个或多个先前的令牌。
$
匹配字符串的结尾。
输出URL(带有捕获组参考号):
$1
:插入捕获组#1的内容
选项:
[R=301,L]
:执行301 [R] edirect并指示这是[L] ast规则,因此立即停止重写过程。
Apache Module mod_rewrite文档: http : //httpd.apache.org/docs/2.2/mod/mod_rewrite.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.