繁体   English   中英

有没有办法创建一个像 site.com/state/127 这样的友好 url 并且仍然指向一个特定的文件,比如 index.php

[英]Is there a way to create a friendly url like site.com/state/127 and still point to a particular file like index.php

我正在创建一个 rest api 端点来将数据输入到数据库中。 我一直在尝试将 url 重写为这种格式http://example.com/src/public/endpoint/data url 中的 public 是一个文件夹,其中包含一个 index.php 文件,所有 url 都将路由到该文件,但它不起作用。 下面是我的 .htaccess 代码。

RewriteEngine 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://example.com/src/public/index.php?path=$1 [NC,L,QSA]

当我期望example.com/src/public/state/127时,我将链接地址http://example.com/src/public/?path=state/127&_=1579497796272作为端点。 我知道我没有做正确的事情,但我无法弄清楚。

尝试这个 :

RewriteEngine On
RewriteCond %{THE_REQUEST} \?path=(.*)&(.*)\sHTTP.*$
RewriteRule ^(.*)$ /src/public/%1? [L,R]
RewriteRule ^src/public/state/127 /src/public/?path=state/127&_=1579497796272 [L]

首先你应该在RewriteEngine之后添加on这意味着启用 mod_rewrite 。 第二行将捕获请求并获取查询字符串的一部分。 第三行将外部重定向请求以保持友好。 最后一行将在内部重定向一个新路径到正确的路径。

注意:如果没问题,把R改成R=301就可以永久重定向了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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