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



我正在创建一个 rest api 端点来将数据输入数据库。我一直在尝试将网址重写为这种格式http://example.com/src/public/endpoint/data.url 中的公共是一个文件夹,该文件夹具有索引.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以永久重定向。

最新更新