Discuz论坛静态化设置方法

URL静态化可以提高搜索引擎抓取,Discuz论坛程序是如何实现URL静态化的呢?

为给大家提供发布问题、解决问题、分享经验的平台,本站现已开启经验交流区(基于Discuz论坛程序)。

刚使用Discuz程序搭建交流区的时候碰到了几个问题,不过通过百度一下均都得以解决。特开启Discuz栏目为DZ建站者们分享Discuz常见问题及解决方案,希望经验分享为你所用!

Discuz论坛程序如何开启URL静态化?

登录Discuz后台,Rewrite设置方法:全局——>SEO设置——>URL 静态化

discuz论坛URL静态化
discuz论坛URL静态化

如上图,勾选需要URL静态化的页面,然后点击右上角的“查看当前的 Rewrite 规则URL 静态化”链接。可以看到Discuz已经为我们生成了Rewrite规则,如下所示:

Apache Web Server(独立主机用户)

  1. <IfModule mod_rewrite.c> 
  2.     RewriteEngine On 
  3.     RewriteCond %{QUERY_STRING} ^(.*)$ 
  4.     RewriteRule ^(.*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2&%1 
  5.     RewriteCond %{QUERY_STRING} ^(.*)$ 
  6.     RewriteRule ^(.*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3&%1 
  7.     RewriteCond %{QUERY_STRING} ^(.*)$ 
  8.     RewriteRule ^(.*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3&%1 
  9.     RewriteCond %{QUERY_STRING} ^(.*)$ 
  10.     RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page\%3D$4&page=$3&%1 
  11.     RewriteCond %{QUERY_STRING} ^(.*)$ 
  12.     RewriteRule ^(.*)/(fid|tid)-([0-9]+)\.html$ $1/archiver/index.php?action=$2&value=$3&%1 
  13. </IfModule> 

Apache Web Server(虚拟主机用户)

  1. # 将 RewriteEngine 模式打开 
  2. RewriteEngine On 
  3.  
  4. # 修改以下语句中的 /discuz 为您的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 / 
  5. RewriteBase /discuz 
  6.  
  7. # Rewrite 系统规则请勿修改 
  8. RewriteCond %{QUERY_STRING} ^(.*)$ 
  9. RewriteRule ^topic-(.+)\.html$ portal.php?mod=topic&topic=$1&%1 
  10. RewriteCond %{QUERY_STRING} ^(.*)$ 
  11. RewriteRule ^article-([0-9]+)-([0-9]+)\.html$ portal.php?mod=view&aid=$1&page=$2&%1 
  12. RewriteCond %{QUERY_STRING} ^(.*)$ 
  13. RewriteRule ^forum-(\w+)-([0-9]+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1 
  14. RewriteCond %{QUERY_STRING} ^(.*)$ 
  15. RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1 
  16. RewriteCond %{QUERY_STRING} ^(.*)$ 
  17. RewriteRule ^(fid|tid)-([0-9]+)\.html$ archiver/index.php?action=$1&value=$2&%1 

IIS Web Server(独立主机用户)

  1. [ISAPI_Rewrite] 
  2.  
  3. 3600 = 1 hour 
  4. CacheClockRate 3600 
  5.  
  6. RepeatLimit 32 
  7.  
  8. # Protect httpd.ini and httpd.parse.errors files 
  9. # from accessing through HTTP 
  10. RewriteRule ^(.*)/topic-(.+)\.html(\?(.*))*$ $1/portal\.php\?mod=topic&topic=$2&$4 
  11. RewriteRule ^(.*)/article-([0-9]+)-([0-9]+)\.html(\?(.*))*$ $1/portal\.php\?mod=view&aid=$2&page=$3&$5 
  12. RewriteRule ^(.*)/forum-(\w+)-([0-9]+)\.html(\?(.*))*$ $1/forum\.php\?mod=forumdisplay&fid=$2&page=$3&$5 
  13. RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html(\?(.*))*$ $1/forum\.php\?mod=viewthread&tid=$2&extra=page\%3D$4&page=$3&$6 
  14. RewriteRule ^(.*)/(fid|tid)-([0-9]+)\.html(\?(.*))*$ $1/archiver/index\.php\?action=$2&value=$3&$5 

IIS7 Web Server(独立主机用户)

  1. <rewrite> 
  2.     <rules> 
  3.         <rule name="portal_topic"> 
  4.             <match url="^(.*/)*topic-(.+).html\?*(.*)$" /> 
  5.             <action type="Rewrite" url="{R:1}/portal.php\?mod=topic&amp;topic={R:2}&amp;{R:3}" /> 
  6.         </rule> 
  7.         <rule name="portal_article"> 
  8.             <match url="^(.*/)*article-([0-9]+)-([0-9]+).html\?*(.*)$" /> 
  9.             <action type="Rewrite" url="{R:1}/portal.php\?mod=view&amp;aid={R:2}&amp;page={R:3}&amp;{R:4}" /> 
  10.         </rule> 
  11.         <rule name="forum_forumdisplay"> 
  12.             <match url="^(.*/)*forum-(\w+)-([0-9]+).html\?*(.*)$" /> 
  13.             <action type="Rewrite" url="{R:1}/forum.php\?mod=forumdisplay&amp;fid={R:2}&amp;page={R:3}&amp;{R:4}" /> 
  14.         </rule> 
  15.         <rule name="forum_viewthread"> 
  16.             <match url="^(.*/)*thread-([0-9]+)-([0-9]+)-([0-9]+).html\?*(.*)$" /> 
  17.             <action type="Rewrite" url="{R:1}/forum.php\?mod=viewthread&amp;tid={R:2}&amp;extra=page%3D{R:4}&amp;page={R:3}&amp;{R:5}" /> 
  18.         </rule> 
  19.         <rule name="forum_archiver"> 
  20.             <match url="^(.*/)*(fid|tid)-([0-9]+).html\?*(.*)$" /> 
  21.             <action type="Rewrite" url="{R:1}/archiver/index.php\?action={R:2}&amp;value={R:3}&amp;{R:4}" /> 
  22.         </rule> 
  23.     </rules> 
  24. </rewrite> 

Zeus Web Server

  1. match URL into $ with ^(.*)/topic-(.+)\.html\?*(.*)$ 
  2. if matched then 
  3.     set URL = $1/portal.php?mod=topic&topic=$2&$3 
  4. endif 
  5. match URL into $ with ^(.*)/article-([0-9]+)-([0-9]+)\.html\?*(.*)$ 
  6. if matched then 
  7.     set URL = $1/portal.php?mod=view&aid=$2&page=$3&$4 
  8. endif 
  9. match URL into $ with ^(.*)/forum-(\w+)-([0-9]+)\.html\?*(.*)$ 
  10. if matched then 
  11.     set URL = $1/forum.php?mod=forumdisplay&fid=$2&page=$3&$4 
  12. endif 
  13. match URL into $ with ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html\?*(.*)$ 
  14. if matched then 
  15.     set URL = $1/forum.php?mod=viewthread&tid=$2&extra=page\%3D$4&page=$3&$5 
  16. endif 
  17. match URL into $ with ^(.*)/(fid|tid)-([0-9]+)\.html\?*(.*)$ 
  18. if matched then 
  19.     set URL = $1/archiver/index.php?action=$2&value=$3&$4 
  20. endif 

Nginx Web Server

  1. rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last; 
  2.  
  3. rewrite ^([^\.]*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last; 
  4.  
  5. rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last; 
  6.  
  7. rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last; 
  8.  
  9. rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/archiver/index.php?action=$2&value=$3 last; 
  10.  
  11. if (!-e $request_filename) { 
  12.  
  13.     return 404; 
  14.  

重要说明

  • 以上规则是根据上图中勾选的页面后自动生成的。根据自己的服务器类型选择对应的规则,比如 久久经验网 的服务器是Apache,那就不能选IIS Web Server。
  • 如果discuz论坛程序是建立在根目录,就将对应的Rewrite规则粘贴到.htaccess文件里通过FTP上传到根目录;如果discuz论坛程序是在网站里扩展出来的,比如:根目录/bbs,则将此.htaccess文件存放在bbs目录下。久久经验网的经验交流区采取的就是这种方式。
  • 以上规则都设置好后重新更新缓存,刷新前台界面discuz论坛的板块链接就变成静态的了,如:本站经验交流区Web技术分区下的Web前端板块http://www.exp99.com/bbs/forum-2-1.html。
 

相关经验

导读书签
书签初始化中…