WDlinux官方论坛's Archiver

jeequ 发表于 2013-12-26 14:57

lnamp环境,wordpress无法使用伪静态

安装了lnamp环境,之后,创建了wordpress网站,也将htaccess文件上传到根目录下了

但无法使用伪静态,最后显示404错误

ERROR 404 - Not Found!

The following error occurred:

The requested URL was not found on this server.

Please check the URL or contact the webmaster.

求解!

hfs1314 发表于 2013-12-30 21:08

[i=s] 本帖最后由 hfs1314 于 2013-12-30 21:12 编辑 [/i]

网站管理-rewrite规则管理   新建一个规则并取一个 .conf后缀的文件名。内容如下

[code]rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;
if (!-e $request_filename) {
rewrite ^.+?(/wp-.*) $1 last;
rewrite ^.+?(/.*\.php)$ $1 last;
rewrite ^ /index.php last;
}[/code]

如果使用wp-super-cache插件的话可以换成以下规则。


[code]# 如果请求的文件已存在,直接返回
          if (-f $request_filename) {
              break;
          }
          set $supercache_file '';
          set $supercache_uri $request_uri;
          set $supercache 1;
          set $ihttp_host '';

          if ($request_method = POST) {
              set $supercache 0;
          }

          # 仅在访问文章永久链接时使用静态文件,请求中带参数则不使用静态缓存
          set $qs 0;
          if ($query_string) {
              set $qs 1;
          }

          # 不过从 twitter, facebook, feedburner 链接点过来的,总是带参数,这些访问仍然可以使用静态文件
          if ($query_string ~* "^utm_source=([^&]+)&utm_medium([^&]+)&utm_campaign=([^&]+)(&utm_content=([^&]+))?[        DISCUZ_CODE_1        ]quot;) {
              set $qs 0;
              set $supercache_uri $document_uri;
          }
          #deactivate on high load
          if ($qs = 1) {
              set $supercache 0;
          }
          # 针对已登录用户(发表过评论),可以不静态化。在访问量高峰时可注释掉
          if ($http_cookie ~* "comment_author_|wordpress|wp-postpass_" ) {
              set $supercache 0;
          }

          # 支持移动设备,访问移动版本的网页缓存
          if ($http_user_agent ~* '(iphone|ipod|aspen|incognito|webmate|android|dream|cupcake|froyo|blackberry9500|blackberry9520|blackberry9530|blackberry9550|blackberry 9800|webos|s8000|bada)') {
               set $ihttp_host '-mobile';
          }

          # 指定静态缓存文件的路径
          if ($supercache = 0) {
               set $supercache_uri '';
          }
          if ($supercache_uri ~ ^(.+)$) {
              set $supercache_file /wp-content/cache/supercache/$http_host$1/index${ihttp_host}.html;
          }

          # 只有当缓存文件存在时,才进行 rewrite
          if (-f $document_root$supercache_file) {
              #rewrite ^(.*)$ $supercache_file break;
              rewrite ^ $supercache_file last;
          }

          # 所有其他请求,转给 wordpress 处理
          if (!-e $request_filename) {
              rewrite . /index.php last;
          }[/code]



接下来新建站点或者编辑站点的时候在 rewrite规则选择的地方选择你刚刚命名的文件即可。

hfs1314 发表于 2013-12-30 21:14

规则取自互联网,根据新版wordpress稍有改动。

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.