2013-10-03 4 views
2

Я действительно пытаюсь получить соответствие этому URL-адресу моим правилам htaccess и ничего, что я пытаюсь, похоже, работает.Правило переопределения не применяется

Это URL я хочу, чтобы соответствовать

http://www.xyz.com/events/my-event-in-town/

RewriteRule ^my-event-in-([^/]+)/$ /new-url/$1/ [R=301] 

Надежда кто-то может указать на мою очевидную ошибку

мне также нужно удалить первый/события/часть из URL

+0

Попробуйте удалить первый '^'. Или это «мой-событие-в-городе» ваш корень документа? – Qben

+0

Это работает, кроме того, что мне нужно также удалить часть «событий»? Я, правда, означал, что нужно начать с этого? – jhodgson4

+2

Как @servant написал в своем ответе '^' это начало строки, а не начало матча здесь. Также '$' - конец строки. Вам не нужно ничего делать в разделе 'events', если вы не хотите подтвердить, что он действительно там. Слуга Бара ответил на это. :-) – Qben

ответ

2

Должно быть:

RewriteRule ^events/my-event-in-([^/]+)/$ /new-url/$1/ [R=301] 

Или:

RewriteCond %{REQUEST_URI} ^/events/ 
RewriteRule my-event-in-([^/]+)/$ /new-url/$1/ [R=301] 

Ваше правило будет соответствовать только http://www.xyz.com/my-event-in-town/ потому что ^ означает начало строки якоря.

+0

Спасибо, что сработали. По началу строки вы имеете в виду все после имени домена? – jhodgson4

+1

@ jhodgson4 Да, все после имени домена. Но, возможно, это может быть все после папки-хранилища файла _.htaccess_ _ (но я не уверен в этом) _. – 5ervant

Смежные вопросы