Регулярное выражение для соответствия формату URL OpenCart - PullRequest
0 голосов
/ 06 января 2012

Мне нужно регулярное выражение, чтобы соответствовать этому URL, чтобы включить перезапись URL.

http://www.somewhere.com/index.php?route=common/home

Это веб-сайт OpenCart.

ОБНОВЛЕНИЕ:

Я пытаюсь использовать регулярное выражение для перезаписи URL в IIS7.Первая часть URL не нуждается в точном сопоставлении доменного имени, но мне нужно получить итоговый URL следующим образом:

http://www.somewhere.com/common/home

Ответы [ 2 ]

0 голосов
/ 06 января 2012

Перезапись URL-адреса получает URL-адрес после вашего домена и начальный / и передает его в index.php через GET с использованием параметра route , поэтому

http://www.yourdomain.com/common/home

становится

http://www.yourdomain.com/index.php?_route_=common/home

_route_ используется контроллером перезаписи URL для определения правильной используемой страницы / маршрута.Обратите внимание, что для отмены процесса (создания URL-адресов) Вам просто нужно включить перезапись URL-адреса на странице настроек, чтобы включить их

При этом переопределение URL-адреса по умолчанию работает только для продуктов, категорий, производителей и информационных страниц.- так что вы не сможете сделать это для общего / домашнего маршрута.Тем не менее, существуют модули, которые будут делать это и даже позволят вам дополнительно настраивать URL-адреса, такие как мой модуль Uber SEO, хотя это меняет не только базовые URL-адреса

0 голосов
/ 06 января 2012

вы не указали язык, на котором вы это делаете (protip: не все реализации регулярных выражений имеют одинаковые правила), поэтому я решаю это на python:

>>> import re
>>> pattern = '([^/]+)//([^/]+)/index\.php\?route=([^ ]+)'
>>> repl = '\\1//\\2/\\3'
>>> url = 'http://www.somewhere.com/index.php?route=common/home'
>>> re.sub(pattern, repl, url)
'http://www.somewhere.com/common/home'
...