MapleSky
楓幻魔空站長
- 註冊
- 2024-11-30
- 消息
- 29
- 反饋評分
- 0
- 點數
- 1
帖子資訊:
Discuz! URL 靜態化(以下簡稱 URL 靜態化)功能可以將 Discuz! Archiver 及部分常用頁麵(如 主題列表頁麵 forumdisplay.php、主題內容頁麵 viewthread.php、個人資料頁麵 space.php、標簽頁麵 tag.php 等)進行 URL 靜態化轉換,形成類似 http://www.discuz.net/forum-2-1.html 形式的超級鏈接,從而使論壇內容更容易被搜索引擎挖掘,提高被收錄的機率。
您可以通過 係統設置 => 全局 => 優化設置 => 搜索引擎優化 => URL靜態化 來控製需要靜態化的頁麵。
本功能對服務器環境有特殊要求,獨立主機用戶需要對 Web 服務器增加相應的 Rewrite 規則,因此需要服務器權限才可使用。對於虛擬主機用戶,您需要向您的空間服務商進行谘詢:空間是否支持 Rewrite 以及是否支持對站點目錄中 .htaccess 的文件解析,隻有滿足這兩條件,URL 靜態化 功能才會生效。
打開 URL 靜態化 後,論壇一些常用鏈接會變成類似 http://www.discuz.net/forum-2-1.html 形式,如果您的服務器環境不支持或者尚未配置好,訪問這些鏈接會出現“網頁無法顯示”的錯誤信息,論壇將無法正常訪問。發生無法訪問的現象時,請您進入管理後台,關閉 URL 靜態化 功能,論壇即可恢複正常狀態。
Discuz! URL 靜態化 功能受到論壇所在服務器環境的製約,在開啟此功能之前,請根據你的 Web 服務器環境,選擇相應的環境配置方法。錯誤的設置有可能造成服務器無法啟動或者功能無效。
一、Apache Web Server(獨立主機用戶)
首先確定您使用的 Apache 版本,還有是否加載了 mod_Rewrite 模塊。
Apache 1.x 的用戶請檢查 conf/httpd.conf 中是否存在如下兩段代碼:
Apache 2.x 的用戶請檢查 conf/httpd.conf 中是否存在如下一段代碼:
如果存在,那麼在配置文件(通常就是 conf/httpd.conf)中加入如下代碼。此時請務必注意,如果網站使用通過虛擬主機來定義,請務必加到虛擬主機配置,即<VirtualHost> 中去,如果加在虛擬主機配置外部將可能無法使用。改好後將 Apache 重啟。
如果沒有安裝 mod_Rewrite,您可以重新編譯 Apache,並在原有 configure 的內容中加入 --enable-Rewrite=shared,然後再在 Apache 配置文件中加入上述代碼即可。
二、Apache Web Server(虛擬主機用戶)
在開始以下設置之前,請首先谘詢您的空間服務商,空間是否支持 Rewrite 以及是否支持對站點目錄中 .htaccess 的文件解析,否則即便按照下麵的方法設置好了,也無法使用。
檢查論壇所在目錄中是否存在 .htaccess 文件,如果不存在,請手工建立此文件。Win32 係統下,無法直接建立 .htaccess 文件,您可以從其他係統中拷貝一份,或者在 Discuz.net 技術支持欄目中下載此文件。編輯並修改 .htaccess 文件,添加以下內容:
添加內容時,請遵照上麵的提示,修改論壇所在的路徑,然後保存。將 .htaccess 文件上傳到論壇所在的目錄中。然後進入論壇係統設的搜索引擎優化,根據需要開啟 URL 靜態化功能。
三、IIS Web Server(獨立主機用戶)
首先在 IIS 的 Isapi 上添加這個篩選器,篩選器名稱為 Rewrite ,可執行文件選擇 Rewrite.dll ,重新啟動 IIS。附件中 httpd.ini 已經設置好,其中內容如下:
然後進入論壇係統設置的搜索引擎優化,根據需要開啟 URL 靜態化功能。
rewrite規則附件下載:Rewrite.zip
四、Zeus Web Server
在虛擬主機配置中找到 Request Rewriting,在 Rewrite Script 中寫入以下內容,然後 Apply changes 並 make it take effect。
五、Nginx Web Server
在niginx中開啟Rewrite,在服務器配置文件nignx.conf中寫入以下內容,然後重啟nginx。
文章 2010-2-19 12:26:48 分享於 楓幻魔空綜合論壇
- 文章來源: http://faq.comsenz.com/viewnews-790#
- 適用版本: Discuz!1.0 Discuz!2.0 Discuz!2.2 Discuz!2.5 Discuz!3.1.x Discuz!4.0 Discuz!4.1 Discuz!5.0 Discuz!5.5 Discuz!6.0 Discuz!6.1 Discuz!7.0 Discuz!7.1 Discuz!7.2
- 文章類型: 教學教程
Discuz! URL 靜態化(以下簡稱 URL 靜態化)功能可以將 Discuz! Archiver 及部分常用頁麵(如 主題列表頁麵 forumdisplay.php、主題內容頁麵 viewthread.php、個人資料頁麵 space.php、標簽頁麵 tag.php 等)進行 URL 靜態化轉換,形成類似 http://www.discuz.net/forum-2-1.html 形式的超級鏈接,從而使論壇內容更容易被搜索引擎挖掘,提高被收錄的機率。
您可以通過 係統設置 => 全局 => 優化設置 => 搜索引擎優化 => URL靜態化 來控製需要靜態化的頁麵。
本功能對服務器環境有特殊要求,獨立主機用戶需要對 Web 服務器增加相應的 Rewrite 規則,因此需要服務器權限才可使用。對於虛擬主機用戶,您需要向您的空間服務商進行谘詢:空間是否支持 Rewrite 以及是否支持對站點目錄中 .htaccess 的文件解析,隻有滿足這兩條件,URL 靜態化 功能才會生效。
打開 URL 靜態化 後,論壇一些常用鏈接會變成類似 http://www.discuz.net/forum-2-1.html 形式,如果您的服務器環境不支持或者尚未配置好,訪問這些鏈接會出現“網頁無法顯示”的錯誤信息,論壇將無法正常訪問。發生無法訪問的現象時,請您進入管理後台,關閉 URL 靜態化 功能,論壇即可恢複正常狀態。
Discuz! URL 靜態化 功能受到論壇所在服務器環境的製約,在開啟此功能之前,請根據你的 Web 服務器環境,選擇相應的環境配置方法。錯誤的設置有可能造成服務器無法啟動或者功能無效。
一、Apache Web Server(獨立主機用戶)
首先確定您使用的 Apache 版本,還有是否加載了 mod_Rewrite 模塊。
Apache 1.x 的用戶請檢查 conf/httpd.conf 中是否存在如下兩段代碼:
- LoadModule rewrite_module libexec/mod_rewrite.so
- AddModule mod_rewrite.c
Apache 2.x 的用戶請檢查 conf/httpd.conf 中是否存在如下一段代碼:
- LoadModule rewrite_module modules/mod_rewrite.so
如果存在,那麼在配置文件(通常就是 conf/httpd.conf)中加入如下代碼。此時請務必注意,如果網站使用通過虛擬主機來定義,請務必加到虛擬主機配置,即<VirtualHost> 中去,如果加在虛擬主機配置外部將可能無法使用。改好後將 Apache 重啟。
Apache 配置:
<IfModule mod_rewrite.c> RewriteEngine On
RewriteRule ^(.*)/archiver/((fid|tid)-[\w\-]+\.html)$ $1/archiver/index.php?$2
RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)\.html$ $1/forumdisplay.php?fid=$2&page=$3
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/viewthread.php?tid=$2&extra=page\%3D$4&page=$3
RewriteRule ^(.*)/space-(username|uid)-(.+)\.html$ $1/space.php?$2=$3
RewriteRule ^(.*)/tag-(.+)\.html$ $1/tag.php?name=$2
</IfModule>
如果沒有安裝 mod_Rewrite,您可以重新編譯 Apache,並在原有 configure 的內容中加入 --enable-Rewrite=shared,然後再在 Apache 配置文件中加入上述代碼即可。
二、Apache Web Server(虛擬主機用戶)
在開始以下設置之前,請首先谘詢您的空間服務商,空間是否支持 Rewrite 以及是否支持對站點目錄中 .htaccess 的文件解析,否則即便按照下麵的方法設置好了,也無法使用。
檢查論壇所在目錄中是否存在 .htaccess 文件,如果不存在,請手工建立此文件。Win32 係統下,無法直接建立 .htaccess 文件,您可以從其他係統中拷貝一份,或者在 Discuz.net 技術支持欄目中下載此文件。編輯並修改 .htaccess 文件,添加以下內容:
Apache 配置:
# 将 RewriteEngine 模式打开RewriteEngine On
# 修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /
RewriteBase /discuz
# Rewrite 系统规则请勿修改
RewriteRule ^archiver/((fid|tid)-[\w\-]+\.html)$ archiver/index.php?$1
RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2
RewriteRule ^tag-(.+)\.html$ tag.php?name=$1
添加內容時,請遵照上麵的提示,修改論壇所在的路徑,然後保存。將 .htaccess 文件上傳到論壇所在的目錄中。然後進入論壇係統設的搜索引擎優化,根據需要開啟 URL 靜態化功能。
三、IIS Web Server(獨立主機用戶)
首先在 IIS 的 Isapi 上添加這個篩選器,篩選器名稱為 Rewrite ,可執行文件選擇 Rewrite.dll ,重新啟動 IIS。附件中 httpd.ini 已經設置好,其中內容如下:
代碼:
[ISAPI_Rewrite]# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
RewriteRule ^(.*)/archiver/((fid|tid)-[\w\-]+\.html)\?*(.*)$ $1/archiver/index\.php\?$2&$4
RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)\.html\?*(.*)$ $1/forumdisplay\.php\?fid=$2&page=$3&$4
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html\?*(.*)$ $1/viewthread\.php\?tid=$2&extra=page\%3D$4&page=$3&$4
RewriteRule ^(.*)/space-(username|uid)-(.+)\.html\?*(.*)$ $1/space\.php\?$2=$3&$4
RewriteRule ^(.*)/tag-(.+)\.html\?*(.*)$ $1/tag\.php\?name=$2&$3
然後進入論壇係統設置的搜索引擎優化,根據需要開啟 URL 靜態化功能。
rewrite規則附件下載:Rewrite.zip
四、Zeus Web Server
在虛擬主機配置中找到 Request Rewriting,在 Rewrite Script 中寫入以下內容,然後 Apply changes 並 make it take effect。
代碼:
match URL into $ with ^(.*)/archiver/((fid|tid)-[\w\-]+\.html)?*(.*)$if matched then
set URL = $1/archiver/index.php?$2&$4
endif
match URL into $ with ^(.*)/forum-([0-9]+)-([0-9]+)\.html?*(.*)$
if matched then
set URL = $1/forumdisplay.php?fid=$2&page=$3&$4
endif
match URL into $ with ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html?*(.*)$
if matched then
set URL = $1/viewthread.php?tid=$2&extra=page\%3D$4&page=$3&$4
endif
match URL into $ with ^(.*)/space-(username|uid)-(.+?)\.html?*(.*)$
if matched then
set URL = $1/space.php?$2=$3&$4
endif
match URL into $ with ^(.*)/tag-(.+?)\.html?*(.*)$
if matched then
set URL = $1/tag.php?name=$2$3
endif
五、Nginx Web Server
在niginx中開啟Rewrite,在服務器配置文件nignx.conf中寫入以下內容,然後重啟nginx。
NGINX:
rewrite ^/archiver/((fid|tid)-[\w\-]+\.html)$ /archiver/index.php?$1 last;rewrite ^/forum-([0-9]+)-([0-9]+)\.html$ /forumdisplay.php?fid=$1&page=$2 last;
rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
rewrite ^/space-(username|uid)-(.+)\.html$ /space.php?$1=$2 last;
rewrite ^/tag-(.+)\.html$ /tag.php?name=$1 last;
break;
文章 2010-2-19 12:26:48 分享於 楓幻魔空綜合論壇