285572001 发表于 2018-11-21 14:06:58

discuz url静态化 apache,nginx

  首先进入discuz后台->全部->SEO设置->URL静态化,勾选需要静态化的页面。点击提交,提交后点右上角查看当前的rewrite规则
  1.Apache
  ①开启rewrite模块,将http.conf中LoadModule rewrite_module modules/mod_rewrite.so前面的#去掉,并将AllowOverride改为All
  ②在项目根目录下创建.htaccess文件,内容如下:
  
  RewriteEngine On
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^(.*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2&%1
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^(.*)/article-(+)-(+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3&%1
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^(.*)/forum-(\w+)-(+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3&%1
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^(.*)/thread-(+)-(+)-(+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page\%3D$4&page=$3&%1
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^(.*)/group-(+)-(+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3&%1
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^(.*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3&%1
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^(.*)/blog-(+)-(+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3&%1
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^(.*)/(fid|tid)-(+)\.html$ $1/index.php?action=$2&value=$3&%1
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^(.*)/(+*)-(+)\.html$ $1/plugin.php?id=$2:$3&%1
  
  Nginx
  1.开启nginx的rewrite
  在nginx.conf的server里location /项中添加
  if (!-e $request_filename) {
         rewrite^(.*)$/index.php/$1last;
               break;
         }
  在location ~ \.php项中添加
  set $real_script_name $fastcgi_script_name;
            if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
            set $real_script_name $1;
            set $path_info $2;
      }
      fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
      fastcgi_param SCRIPT_NAME $real_script_name;
      fastcgi_param PATH_INFO $path_info;
  ②在location /项中添加URl规则
  rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
  rewrite ^([^\.]*)/article-(+)-(+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last;
  rewrite ^([^\.]*)/forum-(\w+)-(+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
  rewrite ^([^\.]*)/thread-(+)-(+)-(+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
  rewrite ^([^\.]*)/group-(+)-(+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
  rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last;
  rewrite ^([^\.]*)/blog-(+)-(+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last;
  rewrite ^([^\.]*)/(fid|tid)-(+)\.html$ $1/index.php?action=$2&value=$3 last;
  rewrite ^([^\.]*)/(+*)-(+)\.html$ $1/plugin.php?id=$2:$3 last;
  if (!-e $request_filename) {
  return 404;
  }
  ③重启nginx
  经过以上几步,就可以实现discuz的url静态化。
  




页: [1]
查看完整版本: discuz url静态化 apache,nginx