博主的站点建立在2014年,当时还是个学生,无力购买国内主机,为了备案当时是通过360网站卫士的方式备案接入,管局审核很慢,也花费了不少时间。在昨天,备案的接入商告知,因为博主网站所在的主机商IP(西数)和备案接入商不是同一家,管局要求接入西数那里,想想当时备案的那个费劲,还得闭站、申请搜索引擎的闭站保护,博主决定了取消备案,同时也可以自由一点。取消备案一身轻,正好博主前几天购入了一个韩国VPS,访问速度还不错,就顺便迁入了。备案这种麻烦的制度就不吐槽了,网上吐槽的也够多了,就写写网站迁移的记录得了。


       迁入VPS环境都需要自己安装调试,选择了流行的LNMP环境,安装完成后上传文件和数据库,打开首页就各种403或者访问权限不足,寻求解决方案无果。博主决定试试面板管理,安装了以前用过的EasyPanel面板,完成配置后打开网站,504网关超时,网上也没有什么好的解决方法,同样以前使用EP面板,同样的迁移过程,但是这次就出了毛病,重启服务器、修改PHP依然无效,只能放弃。


       博主决定再次尝试LNMP环境,上传文件后改来改去配置文件总算网站正常,但是网站文章页会404,这是伪静态规则的问题,以前网站在的环境是Apache,现在Nginx环境不同就得修改。省事的方法是htaccess转换nginx伪静态,不会写规则就找到一个网站在线转换,http://winginx.com/en/htaccess。 转换后貌似还是不行,就开始寻找emlog程序的nginx伪静态规则,正好官方论坛有一份就拷贝了过来使用,至此网站的伪静态设置完成。


      一、emlog的伪静态设置。


      emlog官方提供伪静态设置:http://bbs.emlog.net/thread-8874-1-1.html


      IIS6:



[ISAPI_Rewrite]

3600 = 1 hour

CacheClockRate 3600
RepeatLimit 32
RewriteRule /robots.txt(.) /robots.txt$1 [L]
RewriteRule /rss.php(.
) /rss.php$1 [L]
RewriteRule /tb.php(.) /tb.php$1 [L]
RewriteRule /favicon.ico /favicon.ico [L]
RewriteRule /xmlrpc.php(.
) /xmlrpc.php$1 [L]
RewriteRule /wlwmanifest.xml /wlwmanifest.xml [L]
RewriteRule /(t|m)$ /$1/ [R]
RewriteRule /(admin|content|include|t|m)/(.) /$1/$2 [L]
RewriteRule /install.php(.
) /install.php$1 [L]
RewriteRule /emlog_toolkit.php(.) /emlog_toolkit.php$1 [L]
RewriteRule /up(\d.\d.\d)to(\d.\d.\d).php(.
) /up$1to$2.php$3 [L]
RewriteRule ^/$ /index.php [L]
RewriteRule /(.*) /index.php/$1 [L]
支持.htaccess的IIS6服务器规则:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [L]

【注】关于IIS6规则说明:由于IIS6不支持.htaccess的一些判断规则,因此只能事先处理一些会被正常访问的目录或者文件。有些地方可能需要做修改:


1、如果你有其他非emlog文件,因为添加如上规则而不能正常访问,要想使它们能正常访问的,则添加一条规则在第5行后面,参考第五行:

RewriteRule /rss.php(.*) /rss.php$1 [L]

将rss.php修改为你要访问的文件即可

如果你有其他非emlog目录,因为添加如上规则而不能正常访问,要想使它们能正常访问的,则参考第10、11行,将目录添加进来(用|隔开目录):

RewriteRule /(t|m|admin)$ /$1/ [R]
RewriteRule /(admin|content|include|t|m)/(.*) /$1/$2 [L]
2、如果你的博客在子目录,那么需要将所有目录都改为子目录的,比如你的博客在emlog目录下,那么规则如下:

[ISAPI_Rewrite]

3600 = 1 hour

CacheClockRate 3600
RepeatLimit 32
RewriteRule /emlog/rss.php(.) /emlog/rss.php$1 [L]
RewriteRule /emlog/tb.php(.
) /emlog/tb.php$1 [L]
RewriteRule /emlog/favicon.ico /emlog/favicon.ico [L]
RewriteRule /emlog/xmlrpc.php(.) /emlog/xmlrpc.php$1 [L]
RewriteRule /emlog/wlwmanifest.xml /emlog/wlwmanifest.xml [L]
RewriteRule /emlog/(t|m)$ /emlog/$1/ [R]
RewriteRule /emlog/(admin|content|include|t|m)/(.
) /emlog/$1/$2 [L]
RewriteRule /emlog/install.php(.) /emlog/install.php$1 [L]
RewriteRule /emlog/emlog_toolkit.php(.
) /emlog/emlog_toolkit.php$1 [L]
RewriteRule /emlog/up(\d.\d.\d)to(\d.\d.\d).php(.) /emlog/up$1to$2.php$3 [L]
RewriteRule ^/emlog/$ /emlog/index.php [L]
RewriteRule /emlog/(.
) /emlog/index.php/$1 [L]
Nginx:

location / {
index index.php index.html;
if (!-e $request_filename)
{
rewrite ^/(.+)$ /index.php last;
}
}
IIS7/7.5 规则

     
二、301重定向集中权重。

      由于伪静态和以前不一样,zrj96.com无法跳转到www.zrj96.com集中权重,就开始寻找nginx的301跳转。


       找到nginx.conf文件,如果是AMH这种面板的LNMP环境,4.2免费版在/usr/local/nginx/conf/你站点名字.conf,5.x收费版没用过所以博主不知道conf配置文件在哪。参考的原文链接:https://www.ttlsa.com/nginx/nginx-301-redirect/


      顶级域名重定向到WWW:



server {
server_name ttlsa.com;
rewrite ^/(.*)$ http://www.ttlsa.com/$1 permanent;
}
     WWW重定向到顶级域名:

server {
server_name www.ttlsa.com;
rewrite ^/(.*)$ http://domain.com/$1 permanent;
}
     顺便给出一个目录重定向的规则,不过博主没有使用,根据自身实际情况参考。

     目录重定向:



if ( $request_filename ~ nginxjiaocheng/ ) {
rewrite ^ http://www.ttlsa.com/nginx/? permanent;
}
     目录跳转新域名:

if ( $request_filename ~ nginx/ ) {
rewrite ^ http://nginx.ttlsa.com/? permanent;
}
     三、尝试SSL。

     由于环境自由定制,没有了虚拟主机的束缚就准备尝试下配置SSL。LNMP配置SSL的方法有很多,基本都一样,百度一下就能找到很多。博主在配置证书完成后修改conf文件,反复修改包括监听443端口和301强制跳转均失败,由于暂时没有成功就先放弃了,没有什么东西好记录的。


     虽然配置SSL失败,但是提供一些东西供大家参考。


     1.emlog配置SSL方法:请参考原文:https://www.mrxn.net/jswz/emlog-https-ssl.html


     除了原文作者的修改,博主建议修改后台的默认站点地址,使用phpmyadmin,找到自己博客的数据库,一般是emlog_options,找到站点地址那一行把http改成https。对于加上了https没有小绿锁,变成灰色的情况,一般是模板或者文章内、站点内引用的图片不是https资源导致的,建议自己修改模板文件,把文件内不是https的资源成支持https的来源,或者下载到本地引用,对于文章的图片和其他数据同样的方法来处理。


     2.证书的购买选择。SSL证书如今已经开始普及,有免费和收费的,基本差不多。SSL的证书使用前提是独立IP,如果你的站点在共享IP的虚拟主机上就无法使用,即使是虚拟主机,一般独立IP主机,面板都会提供SSL证书配置的地方,VPS就不用说了,都是独立IP。


     免费证书推荐:沃通:http://www.wosign.com/DVSSL/DV_KuaiSSL_Free.htm


                             Starssl:https://www.startssl.com/ 配置和申请教程:http://www.freehao123.com/startssl-ssl-apache-ngnix/


                             Let’s Encrypt:https://letsencrypt.org/ 此证书比较特殊,配置方法非常多样,建议大家根据自己的情况百度教程。


     收费证书,推荐几个平价的,COMODO、RapidSSL,这两家比较廉价,最低的一年为30元人民币左右,兼容性比较好,基本99.9%以上的浏览器都支持。


     购买的商家提供:不建议去淘宝,不可靠,万一跑路了。


                                1.SSL.DO:https://saki.ssl.do/aff.php?aff=45 


                                2.Namecheap:https://www.namecheap.com 


     COMODO的证书最便宜,8.95美元/年,如果碰上例如黑五之类的促销活动甚至会低至0.99美元。COMODO证书推荐购买:https://saki.ssl.do/aff.php?aff=45&pid=1  还有一个SSL.DO自己定制的证书,也是COMODO作为上级签发,兼容性一样,关键是更便宜,官方标价仅5.95美元/年,在2016年3月会有7折优惠,购买链接:https://saki.ssl.do/aff.php?aff=45&pid=36 优惠码:SAKURA2016 


     SSL.DO有各种环境详细的配置安装教程:https://doc.ssl.do


     至此站点的迁移和一些设置就完成了,如果博主鼓捣成功了SSL再来分享。