2008-09-19 2 views
2

Я хочу взять URL: http://www.mydomain.com/signup-12345Как использовать mod_rewrite изменить путь и имя файла в URL

И на самом деле дать им: http://www.mydomain.com/signup/?aff=12345

У меня нет никакой истории с mod_rewrite, ПОМОГИТЕ!

+1

mydomain.com принадлежит кому-то. example.com зарезервирован для таких примеров. – Jim 2008-09-19 20:36:41

ответ

2

То, что я нашел довольно трудно выяснить, был как сделать? обратное тому, что вы делаете, в результате чего вам нужно узнать значение части строки запроса.

Так, например:

Если вы хотите, чтобы переписать URL: http://www.example.com/signup-старый -script. asp? утвердительный = 12345

к: http://www.example.com/signup-новый -script. php? affID = 12345

вы можете использовать:

RewriteCond %{query_string}& ^aff=((.+&)|&)$ 
RewriteRule ^/signup-old-script.asp$ /signup-new-script.php?affID=%2 [L,R] 

Обратите внимание на % знак в правиле переписывания вместо знака $.

Мне пришлось сделать это, чтобы я мог поддерживать старые карты флэш-памяти на новом сайте, на котором были ссылки на файлы «.cfm» с идентификатором в строке запроса.

5

Попробуйте это:

RewriteRule ^/регистрация - (\ d +)/$/регистрация/АРР = $ 1 [I]

+0

Что означает этот флаг [I]? Не мог найти его нигде. – CodeVirtuoso 2011-01-28 15:17:14

1

Насколько я знаю,

флаг вызывает RewriteCond игнорироваться. - для «Игнорировать дело» - от IsapiRewrite версия 2