Nginx 301重定向全部捕获

时间:2014-04-01 08:03:31

标签: redirect nginx url-rewriting http-status-code-301

最近我发现有些网站将许多没有现有网址(缺少.html)链接到我的域名。 我将尝试通过将所有这404个错误的URL指向正确的URL来降低爬网错误。

但我在nginx中进行301重定向时遇到问题

我想将domain.com/mp3/search重定向到domain.com/mp3/search.html

我当前的配置是:

       location / {
rewrite ^/mp3/([^/]*).html(/?)+$ /index.php?mp3=$1;

#rewrite ^/mp3/([^/]*).html(/?)+$ /index.php?mp3=$1;
#rewrite ^/mp3/([^/]*)$ /$1.html;

}

我试过

#rewrite ^/mp3/([^/]*).html(/?)+$ /index.php?mp3=$1;

它只是创建了一个domain.com/mp3/search页面

 #rewrite ^/mp3/([^/]*)$ /$1.html;

返回404

更多例子:

mp3/Rank_1_&_Dennis_Sheperd  to become  mp3/Rank_1_&_Dennis_Sheperd.html
mp3/Flashlight_ to become mp3/Flashlight_.html
mp3/Let_her_go_ to become mp3/Let_her_go_.html
mp3/Audien_-_Iris to become mp3/Audien_-_Iris.html

全部使用301重定向

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找的重写规则是:

rewrite ^/mp3/([^/]*)(?!.html)$ /mp3/$1.html permanent;