2013-02-12 125 views
1
可变

我有网址,像这样的:重写规则:正则表达式来从链接中删除

我党/ viewparty/243-党在柏林-2013.html

哪里URL的可变部分是:

243-党在柏林-2013.html

我NEET得到像网址:

事件/党在柏林-2013.html

我怎么能与Apache重写规则做呢?我设法删除了“my-party/viewparty”,但我无法删除部分变量链接。 非常感谢您

亚历山德罗

+0

这个问题不是很清楚。你想只删除243-前缀或完全替换URL中的最后一个路径元素(what-ever-party.html)与派对-in-berlin-2013.html? – heximal 2013-02-12 10:24:16

+0

您好,我需要用events/party-in-berlin-2013.html替换我的party/viewparty/243-party-in-berlin-2013.html网址,其中url的243部分是可变的 – AleCat83 2013-02-12 10:27:38

回答

1

下面将格式映射任何URI:

my-party/viewparty/<digits>-<rest-of-file-name>.html

/events/<rest-of-file-name>.html

RewriteEngine On 
RewriteCond %{REQUEST_URI} my-party/viewparty/\d+-([^\.]*\.html)$ 
RewriteRule .* /events/%1 [L] 

的它的工作方式是捕捉请求URI的最后一部分(用美元符号表示),以.html结尾,并在my-party/viewparty/\d+-之前,其中\d+表示一串数字,其中有一个数字最小长度为一位数字。然后在RewriteRule中将此捕获的模式(由%1表示)附加到/events/

如果你想重定向(301 Moved Permanently),以新的URI,使用方法:

RewriteEngine On 
RewriteCond %{REQUEST_URI} my-party/viewparty/\d+-([^\.]*\.html)$ 
RewriteRule .* /events/%1 [R=301,L] 

而且,如果party-in-berlin-2013部分没有变化,那么你可以只需更换RewriteCond本:

RewriteCond %{REQUEST_URI} my-party/viewparty/\d+-(party-in-berlin-2013\.html)$