Переписать старые URL на новые, чистые - PullRequest
0 голосов
/ 28 октября 2011

У меня есть файл .htaccess, успешно переписывающий такие вещи, как /conferences/details/21 в /index.php?pages=conferences&var1=details&var2=21.

У меня есть Piwik, отслеживающий этот сайт, который показывает много рефералов с сайтов, которые не обновили свои URL-адреса (это очень новый сайт) с такими URL-адресами, как

http://www.domain.com/index.cfm?page=conference&intConferenceID=81

И

http://www.domain.com/index.cfm?page=conference&intConferenceID=88&type=conference

Я бы хотел переписать их на /conferences/details/[numeric ID seen above].

Я пробовал это:

RewriteRule ^index.cfm?page=conference&intConferenceID=(\d+)/?$ /conferences/details/$1 [L,NC,QSA]

Обвисулы игнорируют второй пример. Тем не менее, это дает мне 404 высказывание index.cfm не может быть найдено.

Какое правило перезаписи мне нужно написать, чтобы переписать вышеуказанные отформатированные ссылки (смена идентификаторов) в /conferences/details/[ID]?

1 Ответ

1 голос
/ 28 октября 2011

Вы можете извлечь строку запроса из RewriteCond:

RewriteCond %{REQUEST_URI} ^/index.cfm
RewriteCond %{QUERY_STRING} page=(.+)&intConferenceID=([^&]+)
RewriteRule . /%1/details/%2 [L]

Не уверен, откуда берутся "детали" на основе перезаписи /foo/bar/21 -> /index.php?f=foo&b=bar&arg=21.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...