.htaccess - 带有 .htaccess 的多个查询参数 RESTful URL

标签 .htaccess restful-url

我想对我正在开发的网站使用以下 RESTful URL。

http://mysite.com/Products/category=bags&colours=black

任何人都可以告诉我如何使用 .htaccess 实现此目的吗?

奥斯卡

最佳答案

这是一个 .htaccess,用于捕获任何内容,除非文件或目录发生冲突,并且它会路由到/index.php:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

这样我们就可以使用/index.php 作为我们的请求路由器。在 PHP 中,我们只是简单地获取如下请求:

<?php
$url_path = $_SERVER['REQUEST_URI'];
// Parse your URL path here...

也就是说,您的 URL 模式是非标准的,我真的建议不要这样做,因为代理和浏览器会对 & 号和等号进行 URL 编码。让我建议使用以下其中一项(也可以使用小写字母,因为它有助于验证 URL):

http://example.com/products/categories/bags/colours/black
http://example.com/products/category_bags/colours_black
http://example.com/products?category=bags&colours=black
http://example.com/products/categories/bags?colours=black
http://example.com/products/bags?colours=black

要查看 URL 路径中编码的内容,只需 Google 搜索并查看 Google 的搜索 URL。

希望这有帮助。

-迈克

关于.htaccess - 带有 .htaccess 的多个查询参数 RESTful URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3475355/

相关文章:

ruby-on-rails-3 - 资源中的命名路线带我显示页面而不是删除页面

php - 强制 Heroku PHP 应用程序对 www 和非 www 版本都使用 https

apache - 如何在 Linux 服务器中使 URL 不区分大小写

java - 如何从 Java 中的 RESTful 服务进行 API 调用?

android - 如何从 android 中的 url 解析多个 JSON 对象和数组?我在那个例子中使用了一个我想要的例子,

java - Android 应用程序无法将详细信息发布到 url

php - 如何避免 Request Entity Too Large 413 错误

.htaccess - 正确的userdir.conf为此.htaccess

apache - 忽略 RewriteCond 和 RewriteRule 中的尾部斜杠

rest - 简单的 REST URL 方案