Параметр множественного запроса RESTful URL с .htaccess - PullRequest
2 голосов
/ 13 августа 2010

Я хотел бы использовать следующий RESTful URL для веб-сайта, над которым я работаю.

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

Может кто-нибудь подсказать, как этого добиться с помощью .htaccess?

Оскар

1 Ответ

6 голосов
/ 15 августа 2010

Вот .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 его и посмотрите наПоисковый URL Google.

Надеюсь, это поможет.

-Mike

...