Typecho Rewrite(伪静态)

admin 2015年12月17日 LAMP配置 2068次阅读 查看评论

 

在WordPress中,固定链接可以采用Rewrite(伪静态),默认使用动态链接。在Typecho中,同样的设置叫做“永久链接”,然而Typecho默认使用了Pathinfo(也就是 http://域名/index.php/文章地址)的链接方式。如果服务器不支持Pathinfo则Typecho可以浏览首页却无法查看文章或者进入后台。如果开启了Typecho的Rewrite,则Typecho的管理后台默认支持自定义伪静态。如图:

typecho永久链接设置

运行环境:nginx/1.6.0 + PHP/5.4.31

1、php.ini中 cgi.fix_pathinfo=1 时的nginx 配置:

    location / {            
    #rewrite rule for typecho staticize             
    if (!-e $request_filename) {                 
    rewrite ^/(.*)$ /index.php/$1 last;             
    }    
    }    
    location ~ ^.+\.php {            
    fastcgi_pass unix:/var/run/php5-fpm.sock;            
    fastcgi_index index.php;            
    fastcgi_param SCRIPT_FILENAME $request_filename;            
    #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;     //也可以,但不推荐            
    include fastcgi_params;   
    }

2、php.ini中 cgi.fix_pathinfo=0 时的nginx 配置:

为了避免PHP CGI 中 fix_pathinfo 引起的安全隐患,现在一般关闭上述php.ini选项。此时nginx的配置:

    location / {            
    #rewrite rule for typecho staticize             
    if (!-e $request_filename) {                 
    rewrite ^/(.*)$ /index.php/$1 last;             
    }    
    }    
    location ~ ^.+\.php {            
    fastcgi_pass unix:/var/run/php5-fpm.sock;            
    fastcgi_index index.php;            
    fastcgi_split_path_info ^(.+\.php)(/.+)$;            
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;             
    include fastcgi_params;    
    }

3、php.ini 中 cgi.fix_pathinfo=0 时的nginx 配置(也试用于cgi.fix_pathinfo=1):

很遗憾,这个方法仅适用于前台页面,不适用于后台管理页面。大家不要参考这个配置了:

    location / {            
    # one line for typecho staticize and with cgi.fix_pathinfo=0 more secure            
    try_files $uri $uri/ /index.php;    
    }    
    #location ~ ^.+\.php {    //也可以,但不推荐    
    location ~ \.php$ {           
     fastcgi_pass unix:/var/run/php5-fpm.sock;            
     fastcgi_index index.php;            
     fastcgi_param SCRIPT_FILENAME $request_filename;            
     #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;     //也可以,但不推荐            
     include fastcgi_params;    
     
     }

参考资料:

  • NGINX CONFIGURATION PRIMER

  • Understanding the Nginx Configuration Inheritance Model

  • Securing Nginx + PHP When Using Path Info

 

« 上一篇 下一篇 » admin原创文章,转载请注明出处! 标签:Typecho Rewrite(伪静态)

相关日志:

«   2019年11月   »
123
45678910
11121314151617
18192021222324
252627282930
控制面板
您好,欢迎到访网站!
  [查看权限]
网站分类
文章归档
网站收藏
友情链接
图标汇集
  • 又拍云
  • 订阅ipvb的RSS 2.0聚合