大飞的站点

返回

⏳ 时光胶囊:这是一篇发布于 2013 年(距今约 13 年)的历史博文。文中的技术环境、软件版本或当时心境与当下可能已有所差异,特此留存作为成长印记与历史参考。

问题描述:Destoon 会员公司的二级域名无法访问?Destoon 如何在 Nginx 上实现公司二级域名的泛解析?Destoon 怎么在 Nginx 上如何写 URL Rewrite 伪静态?

几天前把 destoon 服务器从 win2003 换成了 CentOS,所以就用军哥的 LNMP 里的 Nginx 架设网站。刚架设好后,测试会员的二级域名无法自动解析,在 destoon 论坛找了很多方法依然不行,后来在 google 上搜了很多资料才解决问题,现在将方法写在这里记录一下。


首先在 Nginx 的 conf 文件夹内建立”destoon.conf”伪静态的文件,其规则如下:

location / {
rewrite ^/(.*)\.(asp|aspx|asa|asax|dll|jsp|cgi|fcgi|pl)(.*)$ /404.php last;
rewrite ^/(.*)/file/(.*)\.php(.*)$ /404.php last;
rewrite ^/(.*)-htm-(.*)$ /$1.php?$2 last;
rewrite ^/(.*)/show-([0-9]+)([\-])?([0-9]+)?\.html$ /$1/show.php?itemid=$2&page=$4 last;
rewrite ^/(.*)/list-([0-9]+)([\-])?([0-9]+)?\.html$ /$1/list.php?catid=$2&page=$4 last;
rewrite ^/(.*)/show/([0-9]+)/([0-9]+)?([/])?$ /$1/show.php?itemid=$2&page=$3 last;
rewrite ^/(.*)/list/([0-9]+)/([0-9]+)?([/])?$ /$1/list.php?catid=$2&page=$3 last;
rewrite ^/(.*)/([A-za-z0-9_\-]+)-c([0-9]+)-([0-9]+)\.html$ /$1/list.php?catid=$3&page=$4 last;
rewrite ^(.*)/([a-z]+)/(.*)\.shtml$ $1/$2/index.php?rewrite=$3 last;
rewrite ^/(com)/([a-z0-9_\-]+)/([a-z]+)/(.*)\.html$ /index.php?homepage=$2&file=$3&rewrite=$4 last;
rewrite ^/(com)/([a-z0-9_\-]+)/([a-z]+)([/])?$ /index.php?homepage=$2&file=$3 last;
rewrite ^/(com)/([a-z0-9_\-]+)([/])?$ /index.php?homepage=$2 last;
}
nginx

然后在 Nginx 的 vhost 文件夹里创建”*.yourname.com.conf”文件,内容如下(部分略,可复制 Destoon 的主站):

server
	{
		listen       80;
		server_name *.yunnongwang.com;
        server_name_in_redirect off;
		index index.html index.htm index.php default.html default.htm default.php;
		root  /home/wwwroot/www.yourname.com/company;

		include destoon.conf;
nginx

之后重启 Nginx。

(注 1:如果使用 lnmp 的脚本添加 server,输入域名*.yunnongwang.com 后,只会将此域名和主域合并到一个 conf 里,只无法达到泛解析的功能)

(注 2:*.yunnongwang.com.conf 这个文件需在 Linux 建立,windows 中文件名规则无法出现*的字符。)

(注 3:网上有一部分解决 Nginx 泛解析的方式发在主域后加 *.yourname.com 是无法使用与 Destoon,因为他的会员公司路径非根目录,而是 company。)

重启 Nginx 后可以先测试伪静态规则是否可用,使用 http://www.yourname.com/index-htm-url-rule.html ↗ 网址访问,如果正常显示主页则表示规则 OK,如果出现 404 字样则说明规则有问题。

后进入 Destoon 后台,网站设置—SEO 优化,如下设置:

htsz

设置完后,在 Drstoon 后台执行”全站更新”。

至此 Destoon 泛解析成功!

destoon 电商网在 nginx 上泛解析的解决办法
https://jerryshi.com/blog/destoon-nginx-fanjiexi
Author大飞
Published at2013年4月9日