Многократный параметр запроса RESTFLE URL с .htaccess
-
28-09-2019 - |
Вопрос
Я хотел бы использовать следующий реституционный 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-адреса кодировать Ampersand и равные знаки. Позвольте мне предложить одно из следующих действий (а также использовать строчные буквы, поскольку он помогает с проверкой 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.
Надеюсь это поможет.
-Майк