繁体   English   中英

使用.htaccess重写从URL省略“公共”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM