2

我想将以下 RESTful URL 用于我正在开发的网站。

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

谁能告诉我如何使用 .htaccess 实现这一目标?

奥斯卡

4

1 回答 1

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 编码。让我建议以下方法之一(并且也使用小写,因为它有助于验证 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 路径中编码的内容,只需谷歌它并查看谷歌的搜索 URL。

希望这可以帮助。

-麦克风

于 2010-08-15T19:26:50.200 回答