Используя механизм перезаписи в Apache, определите, как вы хотите, чтобы ваши URL выглядели для конечного пользователя в их веб-браузере.
Например, если вы звоните в базу данных и у вас есть URL, который выглядит как
https://www.example.com/products?id=30&product_name=myproduct
, но вы хотите, чтобы этот URL выглядел как
https://www.example.com/products/30/myproduct
вы бы использовали правило переписывания следующим образом:
RewriteRule ^/products/(.*)/(.*) /products?id=$1&product_name=$2 [L,P,NE,QSA]
Чтобы объяснить это далее:
^/products/(.*)/(.*)
говорит, что в любое время осуществляется доступ к domain.com/products, ищите две переменные в следующих именах каталогов, т. е. /(.*)/(.*)
Если бы вы хотели только одну переменную, вы бы сделали ^/products/(.*)
Аналогично, если бы вы хотели три переменные, вы бы сделали ^/products/(.*)/(.*)/(.*)
Оттуда мы должны сказать Apache, как интерпретировать этот URL, чтобы переписать и все же позволить Zope (или любой другой БД, которую вы используете) передавать правильные параметры URL. Эта часть:
/products?id=$1&product_name=$2
Apache теперь возьмет первое (.*)
и обработает его как $1
. Это займет второе (.*)
и будет восприниматься как $2
и т. Д.
Чрезвычайно важна часть в скобках
L = Это заставляет Apache прекратить обработку перезаписи набор правил, если правило соответствует. Это важно, потому что вы не хотите, чтобы Apache запутался и начал пробовать другие изменения.
P = Прокси-запрос. Это гарантирует, что браузер не отображает URL, отличный от https://www.example.com/products/30/myproduct
(т. Е. Мы не хотим, чтобы конечный пользователь видел перезаписанный URL как https://www.example.com/products?id=30&product_name=myproduct
NE = Нет, исключая любые символы URL. Вам нужно это чтобы гарантировать, что при переписывании URL-адреса не происходит попытка экранирования специальных символов, таких как $ = &
, поскольку они важны для параметров URL-адреса
QSA = Это позволяет существовать нескольким переменным (или параметрам URL-адреса)
Обратите внимание: Очень важно учитывать, как вы хотите, чтобы ваши URL выглядели (красивые URL), потому что это то, что вы хотите представить поисковым системам. Если вы измените структуру URL, эти хорошие URL больше не будет работать, и ваш рейтинг в поисковых системах может снизиться.