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

时间:2010-08-13 09:02:47

标签: .htaccess restful-url

我想在我正在使用的网站上使用以下RESTful URL。

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

任何人都可以告诉我如何用.htaccess实现这个目标吗?

的奥斯卡

1 个答案:

答案 0 :(得分:6)

这是一个.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):

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

要查看会在网址路径中编码的内容只是Google,并查看Google的搜索网址。

希望这有帮助。

-Mike