我重新设计了一个网站并更改了网址格式。 现在我需要将旧网址更改为新网址。
这是我的旧网址:
http://www.example.com/forum/showPost/2556/Urgent-Respose
新网址将是:
http://www.example.com/2556/Urgent-Respose
如何通过从网址中删除/forum/showPost
来使用nginx重定向到新网址?
编辑: 还有这个网址:
http://www.tikshare.com/business/showDetails/1/Pulkit-Sharma-and-Associates,-Chartered-Accountants-in-Bangalore
新网址:
http://www.tikshare.com/classifieds/1/Pulkit-Sharma-and-Associates,-Chartered-Accountants-in-Bangalore
以上链接已完全删除,而此链接将business/showDetails
替换为classifieds
答案 0 :(得分:4)
有很多选择。您可以保护位置块内的重写,这非常有效,因为正则表达式仅在URI前缀匹配时进行测试:
location ^~ /forum/showPost {
rewrite ^/forum/showPost(.*)$ $1 permanent;
}
有关详情,请参阅this document。
您在问题中使用了永久 - 这会产生301响应。
如果您使用redirect
代替permanent
,则会生成302回复。
如果您使用last
而不是permanent
,则会发生内部重定向,浏览器地址栏将继续显示旧网址。
回应你的评论:
rewrite ^/forum/showPost(.*)$ /post$1 permanent;
答案 1 :(得分:1)
server
{
listen 80; ## Listen on port 80 ##
server_name example.com; ## Domain Name ##
index index.html index.php; ## Set the index for site to use ##
charset utf-8; ## Set the charset ##
location ^~ /forum/showPost {
rewrite ^/forum/showPost(.*)$ $1 permanent;
}
location ^~ /business/showDetails {
rewrite ^(.*)business/showDetails(.*)$ classifieds$1 permanent;
}
}