我有这样的网址:
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”,但我无法删除变量链接的部分。非常感谢
亚历山德罗
我有这样的网址:
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”,但我无法删除变量链接的部分。非常感谢
亚历山德罗
以下将映射格式中的任何 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)$