打算搭一个短网址系统自用,找了找开源的程序,发现有YOURLS,Polr两个程序用貌似不错,比较了一下,打算使用YOURLS,虽然界面有点老旧,不过没关系,自用足够了,而且貌似插件扩展开发什么的也比较简单,就他了。

直接从 https://github.com/YOURLS/YOURLS 下载最新的源码,上传到服务器上
user/config-sample.php 重命名为 user/config.php,并编辑相应配置
访问 http://your-own-domain-here.com/admin/ ,点击 Install YOURLS 开始安装

不过出问题了,报了500的错误,emmm~什么鬼,因为一开始用的是php7,所以还以为是YOURLS不兼容php7,切换到php5.6,结果发现还是一样的问题,安装报500的错误,这就奇怪了,看来应该不是php版本不兼容的问题,在github的issues里搜了一下,看到有把数据库的字符集排序规则设置为 utf8_general_ci 解决的,难道是这个原因?打开phpmyadmin,发现数据库的排序规则是用的utf8mb4_general_ci,改成 utf8_general_ci 试试,嘿,可以,还真是可以正常安装了。

哈哈,又下了一个adsense,用之前新搭的那个站,本来打算那个号如果再被拒的话,就换这个新搭的站申请,结果那个号出乎意料的下号了,但是想着这个站既然搭好了也别浪费,再申请一个号试试,结果很美丽,一次申请就下号了。

简单说一下这个站的情况,是用去年趁黑色星期五打折时注册的一个域名,然后就一直闲置着,这个站是6月26号上线的,用的wordpress,搞了几百篇文章,发布时间从去年开始,然后还另外加了些文章做定时发布,设置的每天自动更新一篇文章,然后就啥也没管了,流量是零,emmm~,这次也没有刷流量,不过发现google倒是收录了不少,才上线不到10天,就有几百条收录了,前天用这个站申请的Google AdSense,今天就下号了,一次过,所以这么看来过不过审应该跟有没有流量关系不大,主要应该还是看网站,这个站用的是一个新闻类型的主题,整站文章也多一些,所以网站看起来内容应该算是比较丰富的,哦对,这个号也是申请的美号,英文站。

总结,域名时间久一点,半年以上?,内容丰富一些,emmm~就是网站的文章看着要多,不能太少,一百篇以上?,如果是原创的话,可能就不需要数量了,不过估计得要有质量了吧,哈哈,或者说,没质量数量凑?有质量不要数量?。

搞点啥站呢?搞点啥站能有流量呢?没有流量,不都是扯淡,还要看怎么过PIN,怎么收款。

在aws上开了一台windows服务器,用的操作系统是Windows Server 2016,结果在命令行操作时,发现中文全变成小方框问号了,无法正常显示,也无法输入中文,一开始以为是英文的操作系统没有安装中文语言包的原因,赶紧在控制面板里把中文语言包下载安装一下,结果发现命令行还是不能正确显示中文。

Windows Server 2016 cmd命令行窗口中文变成小方框问号无法正确显示

搜一下,说是命令行窗口的字符集不对,要改一下设置字符集为UTF-8
输入命令 chcp 65001
回车显示 Active code page: 65001
不过中文还是无法正确显示,再把字符集换成GBK的试试
输入命令 chcp 936
回车显示 Invalid code page
呵呵,看来应该不是这个原因。

接着搜,说是要把系统语言改成中文的,试试看,在控制面板里修改

Control Panel->Region->Administrative->Change system locale->Chinese

Windows Server 2016 cmd命令行窗口中文变成小方框问号无法正确显示

修改完成,重启系统

Windows Server 2016 cmd命令行窗口中文变成小方框问号无法正确显示

OK,问题解决,中文可以正常显示了。

Google AdSense 下号了

历时一个月,七次申请,终于批号了,哈哈,开心,其实也没想到这个站竟然能通过审核,因为之前一直都是被拒的,所以昨天又另外搞了一个站打算如果再被拒,就换站试试了,结果竟然下号了,哈哈,开心,大概记录一下这一个月的操作,不过这些操作不一定是通过审核的因素,感觉跟审核的人可能也有些关系。

第一次申请,网站内容很少,大概十几条文章还是去年发的,然后就一直没管过,google有12条的收录,流量零,结果毫不意外,被拒,被拒之后,因为登陆adsense后,提示说是网站上发现一些违规问题,还一度以为是网站内容不符合google政策,所以被拒了。

第二次申请,怀疑网站内容不行,所以直接就换了另外一个旅游类型的网站,也是只有几十条文章,也是去年发的,google的收录自然也不多,流量也是零,结果也是毫不意外的被拒,不过这次被拒确定不是因为网站内容不符合google政策,应该是网站内容太少所以被拒的。

第三次申请,仍然使用第一次申请用的网站,增加了几十条文章,整站大概有50多条的文章,文章都是直接复制粘贴的,没有做伪原创,只是把发布时间均匀分布了一下,假装是去年到现在不间断更新的,然并卵,还是被拒了,被拒的邮件还是一样的

Site does not comply with Google policies: We're unable to approve your AdSense application at this time because your site does not comply with the Google AdSense program policies or adhere to the Webmaster Quality guidelines. It's our goal to provide our advertisers sites that offer rich and meaningful content, receive organic traffic, and allow us to serve well-targeted ads to users. We believe that currently your site does not fulfill this criteria.

Here are some recommendations to help you improve the user experience on your site and comply with AdSense criteria:

  • It’s important for sites displaying Google ads to offer significant value to the user. As a publisher, you must provide unique and relevant content that gives users a reason to visit your site first.
  • Don’t place ads on auto-generated pages or pages with little to no original content.
  • Your site should also provide a good user experience through clear navigation and organization. Users should be able to easily click through your pages and find the information they’re seeking.

第四次申请,因为之前加了几十篇文章仍然被拒,所以没有被拒后马上申请,打算每隔两天更新一下,等了几天,这几天也更新了两条文章,然后google的收录增加了一些,结果还是一样的,被拒,不过这次被拒发的邮件跟之前三次不一样,增加了一些内容

Insufficient content: To be approved for AdSense and show relevant ads on your site, your pages need to have enough text on them for our specialists to review and for our crawler to be able to determine what your pages are about.

To resolve this issue, please work through the following suggestions:

  • Make sure that your pages have sufficient text - websites that contain mostly images, videos or Flash animations will not be approved.
  • Your content should contain complete sentences and paragraphs, not only headlines.
  • Ensure that your website is fully built and launched before you apply for AdSense - do not apply while your site’s still in a beta or “under construction” phase or only consists of a website template.
  • Place the ad code on a live page of your website. It does not have to be the main page, but test pages that are empty except for the AdSense ad code will not be approved.
  • Provide a clear navigation system for your visitors so that they can easily find all of the sections and pages of your website.
  • If you’d like to monetize YouTube videos, please apply for the YouTube monetization program. Note that blogs and websites that contain only videos will not be approved.

直接说内容不足了,既然这样,那就再加些内容好了,本来想着直接加到100条文章的,结果比较懒,复制粘贴到85条就懒得再加了,也是等了几天,google site到60多条记录,实际放出来的收录有20多条,然后这几天也开始每天刷点流量,另外也给网站加上了https,结果被拒了,被拒的原因有点尴尬

Unable to review your site: While reviewing http://domain, we found that your site was down or unavailable. If you applied through an AdSense host partner, such as YouTube or Blogger, your hosted site was not available or not found (removed) at the time of the review.

无法查看网站,什么鬼,已经对http做301跳转到https了,怎么会无法打开网站,这还真是奇怪了。

第六次申请,因为上次被拒原因有点尬,所以改成直接用https的网址申请,google site查到100多条收录,放出来30多条,继续每天刷着流量,然结果仍是被拒,被拒邮件又跟一开始一样样了。

第七次申请,感觉估计还是站不行,所以一直被拒,打算再被拒的话,就准备换站试试了,这次也只是增加了7条文章,还是没能加到100条,哈哈,只有92条文章,google的收录倒是增加了不少,不知道是不是因为这几天一直有刷着流量的原因,site查到200多条记录,放出来的不多还是只有30多条。

本来想着应该还是会被拒,等了三天,结果,哈哈,今天打开邮箱一看,竟然是获批的邮件,意外不意外,惊喜不惊喜,从5月28号到6月27号,历时整整一个月,Google AdSense终于下号了,嗯,用的是英文站,申请的是美号。

总结,其实也没啥可总结,因为套路并没有摸清楚,对google adsense的审核标准也还是不了解,不过有个百十来篇文章,适当刷点流量,每天有百十来个IP应该就可以了,最好是文章的内容可以适当的搞一搞,如果纯复制粘贴,可能不太容易过,也可能是复制粘贴选的源站不咋的,像我被拒这么多次一样,搞不好也是运气,碰巧最后这次审核的人标准比较宽松,哈哈,所以不好说呢,毕竟是人工审核。

其实说起来这都不算是第一个google adsense账号了,在很久很久以前,大概2010年就下过一个号了,是不是很久了,呵呵,国号,也是申请了好多次过的,不过那会下号之后,emmm~就只是下了一个号,然后就一直都木有搞,说来还真是惭愧,至今那个号也才十多刀吧,算了,不多说了,说多了都是泪,搞站搞站,搞流量搞流量,没有流量,神马都是浮云,搞起来~

把一个wordpress网站源码重新上传,用了一个闲置域名,准备搭起来用来申请adsense,之前用了个随便复制粘贴了些文章的站申请了好几次,也刷了些流量,结果还是一直都过不了,想到还有这个站,整体看起来大概应该还可以,比那个复制粘贴的站好一些,所以准备上线刷上几天流量,再申请adsense试试。

这年月搭个站自然是要带上https的,所以就相当于是给wordpress的网站换域名并启用ssl了,直接进到到数据库改,先把wp_posts表里的旧域名都换成新域名

UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://old.com', 'https://new.com');
UPDATE wp_posts SET guid = REPLACE(guid, 'http://old.com', 'https://new.com');

再把wp_options表里的siteurl和home两个配置项换成新域名,其他的一些插件和主题配置项中也可能有域名,可以手工逐条查找修改,也可以直接sql一下修改,不过因为有些配置项是serialize序列化的,所以还是在phpmyadmin里手工修改好一些

UPDATE wp_options SET option_value = replace(option_value, 'http://old.com','https://new.com');

另外wp_comments,wp_postmeta表里可能也有旧域名,不过这些就按需修改了。

修改完成,打开新换的域名看看,结果,“此页面不能正确地重定向”,什么鬼,有缓存?还有没改到地方?不应该呀,明明能改的都改了,怎么会这样?

Cloudflare Flexible SSL导致WordPress开启https后无限循环重定向

又是一通查看,数据库,网站文件各种检查,结果还是一直无限循环重定向,前后台都是,都打不开,尴尬了,中间还一度以为是浏览器301缓存的原因,因为一开始没修改完,访问了一下新域名直接给301跳转到旧域名上,然后发现这个301缓存是永久的,不清除缓存的话,就算是取消301跳转,浏览器这边还是会直接跳转,当然也可以直接在F12的网络选项卡里选择禁用缓存。

各种尝试查找,都无果,想着这个重定向是在wordpress内部执行的,把重定向取消掉试试,在主题模板的functions.php文件里加上一行代码

remove_filter('template_redirect', 'redirect_canonical');

加上之后,确实可以访问了,不过js,css什么都没有加载,因为这些资源文件都还是http加载的,被浏览器默认禁用了,所以整个页面没有样式,难道是后台还有什么插件或者主题设置的不对,登陆后台试试,后台也是无限循环重定向,所以要把后台的重定向也取消掉,在wp-includes/functions.php文件里找到force_ssl_admin函数,直接在这个函数第一行加上return false

function force_ssl_admin( $force = null ) {
        return false;  // 加到这里      
        static $forced = false;

        if ( !is_null( $force ) ) {
                $old_forced = $forced;
                $forced = $force;
                return $old_forced;
        }

        return $forced;
}

然后后台也确实可以访问了,不过跟前台一样,也是没有样式,css跟js什么也都是http加载的,所以被浏览器默认禁用了,不过这时惊奇的发现,不带https,直接使用http访问后台时,竟然没问题,嗯,前台直接用http访问也是没有问题,这还真是好奇怪,emmm,难道是这套源码里还有什么不为人知的改动,正好wordpress版本也不是最新的,干脆直接升级到最新版本试试,然并卵,升级之后还是一样的问题,真是尴尬了,难道是缓存的问题?不过缓存是没有的,因为没有加缓存插件,配置什么的也应该都没有问题,这下应该不是wordpress哪里不对的问题了,那问题出在哪呢?奇怪emmm~

想来想去,试来试去,还是无果,这真是尴尬了,而且不应该呀,应该不是wordpress的问题,那是哪里的问题呢?会不会是cloudflare的问题?没错这个域名是放到cloudflare上的,我去,该不会真是cloudflare的问题吧,赶紧去看看,把cloudflare的缓存清掉,然无用,继续看,这个SSL: Flexible是个什么鬼,看看帮助

Flexible SSL: You cannot configure HTTPS support on your origin, even with a certificate that is not valid for your site. Visitors will be able to access your site over HTTPS, but connections to your origin will be made over HTTP.

所以这个Flexible SSL就是说,不需要源网站配置SSL证书,用户访问网站的时候使用https请求,而Cloudflare会直接向源站服务器发送http请求,也就是说,用户->https->cloudflare->http->源站,用户到Cloudflare这段是加密的https访问,Cloudflare到源站服务器这段是不加密的http请求,用这样的方式开启网站的https。

我勒个去,搞了半天,竟然是这样的,虽然是直接是使用https访问的网站,而且在wordpress里也都改成了https,但是实际上Cloudflare发到源站的请求是http的,而wordpress检测到是http的请求又会直接发送重定向到https的响应,然后再一次 https->http->https,然后...就陷入了一个无限循环重定向的死循环中,好吧,折腾这么久,结果是这么个原因,所以解决方法也就很简单了,直接把Cloudflare的SSL选项改成 Full 或者 Full(Strict),让Cloudflare默认访问https

Cloudflare Flexible SSL导致WordPress开启https后无限循环重定向

OK,问题解决,网站可以正常使用https访问了。