1.在后臺“全局》SEO設置》URL 靜態化”相關復選框全部勾選,點“提交”按鈕。
2.下載附件.htaccess直接用FTP上傳到論壇根目錄即可,不要修改文件名,就是.htaccess
其他目錄的話修改第2行“RewriteBase /discuz” 把discuz換成目錄名,如在bbs目錄則改為:RewriteBase /bbs .htaccess文件放在bbs目錄
默認規則如下:
# 將以下內容保存為 .htaccess 文件
# 將 RewriteEngine 模式打開
RewriteEngine On
# 修改以下語句中的 /discuz 為您的論壇目錄地址,如果程序放在根目錄中,請將 /discuz 修改為 /
- RewriteBase /
- # Rewrite 系統規則請勿修改
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^topic-(.+)/.html$ portal.php?mod=topic&topic=$1&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^article-([0-9]+)-([0-9]+)/.html$ portal.php?mod=view&aid=$1&page=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^forum-(/w+)-([0-9]+)/.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)/.html$ forum.php?mod=viewthread&tid=$1&extra=page/=$3&page=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^group-([0-9]+)-([0-9]+)/.html$ forum.php?mod=group&fid=$1&page=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^space-(username|uid)-(.+)/.html$ home.php?mod=space&$1=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^blog-([0-9]+)-([0-9]+)/.html$ home.php?mod=space&uid=$1&do=blog&id=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^archiver/(fid|tid)-([0-9]+)/.html$ archiver/index.php?action=$1&value=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^([a-z]+[a-z0-9_]*)-([a-z0-9_/-]+)/.html$ plugin.php?id=$1:$2&%1
Discuz! X2.5 Apache偽靜態規則
默認規則如下:
- RewriteEngine On
- RewriteBase /discuz
- # Rewrite 系統規則請勿修改
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^topic-(.+)/.html$ portal.php?mod=topic&topic=$1&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^article-([0-9]+)-([0-9]+)/.html$ portal.php?mod=view&aid=$1&page=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^forum-(/w+)-([0-9]+)/.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)/.html$ forum.php?mod=viewthread&tid=$1&extra=page/=$3&page=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^group-([0-9]+)-([0-9]+)/.html$ forum.php?mod=group&fid=$1&page=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^space-(username|uid)-(.+)/.html$ home.php?mod=space&$1=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^blog-([0-9]+)-([0-9]+)/.html$ home.php?mod=space&uid=$1&do=blog&id=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^archiver/(fid|tid)-([0-9]+)/.html$ archiver/index.php?action=$1&value=$2&%1 //開源軟件:Vevb.com
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^([a-z]+[a-z0-9_]*)-([a-z0-9_/-]+)/.html$ plugin.php?id=$1:$2&%1
Discuz! X2.0 Apache偽靜態規則
默認規則如下:
- # 將 RewriteEngine 模式打開
- RewriteEngine On
- # 修改以下語句中的 /discuz 為你的論壇目錄地址,如果程序放在根目錄中,請將 /discuz 修改為 /
- RewriteBase /discuz
- # Rewrite 系統規則請勿修改
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^topic-(.+)/.html$ portal.php?mod=topic&topicid=$1&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^article-([0-9]+)-([0-9]+)/.html$ portal.php?mod=view&aid=$1&page=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^forum-(/w+)-([0-9]+)/.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)/.html$ forum.php?mod=viewthread&tid=$1&extra=page/=$3&page=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^group-([0-9]+)-([0-9]+)/.html$ forum.php?mod=group&fid=$1&page=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^space-(username|uid)-(.+)/.html$ home.php?mod=space&$1=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^blog-([0-9]+)-([0-9]+)/.html$ home.php?mod=space&uid=$1&do=blog&id=$2&%1
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^archiver/(fid|tid)-([0-9]+)/.html$ archiver/index.php?action=$1&value=$2&%1
Discuz! X2 相對于 X15 來說,rewrite 做了一定的調整:
1. 后臺位置變化:由 X15 的“全局 → 優化設置”,調整為 X2 的“全局 → SEO設置”
2. 數量變化:由 X15 的 6 項針對性設置 + 1 項全站動態頁面,調整為 X2 的 8 項針對設置性
如果希望對之前的已經收錄的rewrite仍可以訪問,可以做如下兼容:
1. 修改 rewrite 規則:有兩種方法可以使用
1) 將 X2 后臺提供的 rewrtie 規則放在 X15 的規則的前面即可,任何規則都可以不刪除
2) 將下面地址中的 rewrite 規則放在 X15 的規則的前面
http://www.discuz.net/thread-2109624-1-1.html
2. 修改文件:
找到:source/class/class_core.php 191行附近
- function _init_input() {
- if (isset($_GET['GLOBALS']) ||isset($_POST['GLOBALS']) || isset($_COOKIE['GLOBALS']) || isset($_FILES['GLOBALS'])) {
- system_error('request_tainting');
- }
- if(!MAGIC_QUOTES_GPC) {
- $_GET = daddslashes($_GET);
- $_POST = daddslashes($_POST);
- $_COOKIE = daddslashes($_COOKIE);
- $_FILES = daddslashes($_FILES);
- }
- 修改為下面的
- function _init_input() {
- if (isset($_GET['GLOBALS']) ||isset($_POST['GLOBALS']) || isset($_COOKIE['GLOBALS']) || isset($_FILES['GLOBALS'])) {
- system_error('request_tainting');
- }
- if(!emptyempty($_GET['rewrite'])) {
- $query_string = '?mod=';
- $param = explode('-', $_GET['rewrite']);
- $query_string .= $_GET['mod'] = $param[0];
- array_shift($param);
- $paramc = count($param);
- for($i = 0;$i < $paramc;$i+=2) {
- $_REQUEST[$param[$i]] = $_GET[$param[$i]] = $param[$i + 1];
- $query_string .= '&'.$param[$i].'='.$param[$i + 1];
- }
- $_SERVER['QUERY_STRING'] = $query_string;
- unset($param, $paramc, $query_string);
- }//開源軟件:Vevb.com
- if(!MAGIC_QUOTES_GPC) {
- $_GET = daddslashes($_GET);
- $_POST = daddslashes($_POST);
- $_COOKIE = daddslashes($_COOKIE);
- $_FILES = daddslashes($_FILES);
- }
新聞熱點
疑難解答