技术解析
Wordpress,一直用的是网上搜的配置方法,也一直正常运行,具体就是在 location /节点下加入如下配置:
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $r大带宽服务器equest_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
今天我想做一个 /goto/的 aff 跳转,结果发现个问题,host/goto/abc,假设我有篇文章的链接是 host/随便是啥 /abc-adf-cd,就是链接里有了 abc,它就会自动 301 到这篇文章,如果不存在文章链接里有 abc 就能正常走 goto 的流程。
我就仔细看了下这个配置。其中我觉得第一个 if 应该没用吧,因为我没有 html 的文件。第二个和第三个就有点疑惑了,假设我访问的是 host/category1/postname1/(这是我 wordpress 的固定链接格式),那么 request_filename 应该就是 /var/wordpress/html/category1/postname1/,这个应该没有问题吧?但是 wordpress 情况下,这个路径里根本不会存在 index.php ,第二个应该是为了 wordpress 后台的一些东西设置的吧我觉得,因为那里可能有 index.php ,那访问文章的时候就是直接进第 3 个 if,condition 很好理解,但是这个 rewrite 规则就奇怪了,(.*) /index.php ?随便什么的 index.php ?这个应该怎么理解啊?