1

我有这样的网址:

my-party/viewparty/243-party-in-berlin-2013.html

其中 url 的可变部分是:

243-party-in-berlin-2013.html

我需要得到一个像这样的网址:

events/party-in-berlin-2013.html

如何使用 apache 重写规则来做到这一点?我已经设法删除了“my-party/viewparty”,但我无法删除变量链接的部分。非常感谢

亚历山德罗

4

1 回答 1

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+表示一串数字,具有最小长度一位数。然后它将这个捕获的模式(用 表示%1)附加/events/RewriteRule.

如果要重定向(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)$
于 2013-02-12T10:31:53.513 回答