2012-01-05 3 views
0

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

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

Это сайт OpenCart.

UPDATE:

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

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

+0

Это выражение не соответствует начальному URL-адресу –

ответ

0

вы не указали язык, на котором вы делаете это (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' 
+0

Я использую он должен выполнить переписывание URL в IIS7 +. http://www.iis.net/download/urlrewrite –

+0

ok Я не использую IIS, но в соответствии с этим: http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for- the-url-rewrite-module/предыдущий шаблон должен работать, но используйте '{R: 1} // {R: 2}/{R: 3}' в качестве замены –

+0

Да, ваше регулярное выражение работает, и я использую это выше url, но, похоже, я не могу найти матч. Я должен что-то упустить с помощью модуля перезаписи –

0

переписывания 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-адреса, такие как мой модуль SEO Uber, хотя это меняет больше, чем просто базовые URL-адреса.

+0

Спасибо за этого Джей. Вы обращаете внимание на то, что я ищу, когда вы сказали переписывать URL-адреса, которые не являются продуктами, категориями, производством и информационными страницами. Это именно то, что я ищу, поскольку я хочу, чтобы весь сайт использовал URL-адреса, удобные для SEO. –

+0

Просьба предоставить вам прямую ссылку на Uber SEO module Jay. ** ОБНОВЛЕНИЕ ** [ссылка] (http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3550&filter_search=seo%20url&sort=e.date_modified&order=DESC). Работает ли этот модуль с Windows и IIS7. –

+0

. Меня беспокоило требование VQMOD - поэтому, чтобы ответить на мой собственный вопрос, похоже, нет причин, по которым он не будет работать в Windows. Я попробую этот компонент и надеюсь, что это трюк. Я все еще озадачен тем, почему мое правило перезаписи не работает. –