2013-10-03 105 views
2

我真的很努力去匹配这个URL我的htaccess规则,没有我尝试似乎工作。重写规则不适用

这是我想匹配

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