discuz url靜態化 apache,nginx

首先進入discuz後臺->全部->SEO設置->URL靜態化,勾選需要靜態化的頁面。點擊提交,提交後點右上角查看當前的rewrite規則

1.Apache

①開啓rewrite模塊,將http.conf中LoadModule rewrite_module modules/mod_rewrite.so前面的#去掉,並將AllowOverride改爲All

②在項目根目錄下創建.htaccess文件,內容如下:

<IfModule mod_rewrite.c>

     RewriteEngine On

     RewriteCond %{QUERY_STRING} ^(.*)$

     RewriteRule ^(.*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2&%1

     RewriteCond %{QUERY_STRING} ^(.*)$

     RewriteRule ^(.*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3&%1

     RewriteCond %{QUERY_STRING} ^(.*)$

     RewriteRule ^(.*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3&%1

     RewriteCond %{QUERY_STRING} ^(.*)$

     RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page\%3D$4&page=$3&%1

     RewriteCond %{QUERY_STRING} ^(.*)$

     RewriteRule ^(.*)/group-([0-9]+)-([0-9]+)\.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-([0-9]+)-([0-9]+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3&%1

     RewriteCond %{QUERY_STRING} ^(.*)$

     RewriteRule ^(.*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3&%1

     RewriteCond %{QUERY_STRING} ^(.*)$

     RewriteRule ^(.*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ $1/plugin.php?id=$2:$3&%1

</IfModule>

Nginx

1.開啓nginx的rewrite

在nginx.conf的server裏location /項中添加

 if (!-e $request_filename) {
           rewrite  ^(.*)$  /index.php/$1  last;
               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-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last;

rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;

rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;

rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.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-([0-9]+)-([0-9]+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last;

rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3 last;

rewrite ^([^\.]*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ $1/plugin.php?id=$2:$3 last;

if (!-e $request_filename) {

     return 404;

}

   ③重啓nginx

經過以上幾步,就可以實現discuz的url靜態化。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章