Многократный параметр запроса RESTFLE URL с .htaccess

StackOverflow https://stackoverflow.com/questions/3475355

  •  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.

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

-Майк

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top