apache中偽靜態配置和使用(Apache虛擬主機下Discuz偽靜態)
2024-08-27 18:26:51
供稿:網友
一 打開 Apache 的配置文件 httpd.conf 。
二 將#LoadModule rewrite_module modules/mod_rewrite前面的#去掉
三 在 httpd.conf中添加:
<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteCond %{ENV:SCRIPT_URL} (?:index|dispbbs)[-0-9]+/.html
RewriteRule ^(.*?(?:index|dispbbs))-([-0-9]+)/.html$ $1.php?__is_apache_rewrite=1&__rewrite_arg=$2
</IfModule>
四 要實現asp帖子URL到php帖子的映射,在 第三步的<IfModule mod_rewrite.c>和</IfModule>之間添加:
RewriteMap tolowercase int:tolower
RewriteCond %{QUERY_STRING} (?:boardid|page|id|replyid|star|skin)/=/d+ [NC]
RewriteRule ^(.*(?:index|dispbbs))/.asp$ $1.php?${tolowercase:%{QUERY_STRING}}&__is_apache_rewrite=1
五 保存httpd.conf并重啟Apache。
六、mod_rewrite 簡介
Rewirte主要的功能就是實現URL的跳轉和隱藏真實地址,基于Perl語言的正則表達式規范。平時幫助我們實現偽靜態,擬目錄,域名跳轉,防止盜鏈等等
七、mod_rewrite 規則的使用
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.php100.com [NC]
RewriteRule ^/(.*) http://www.php100.com/ [L]
--------
RewriteEngine on
RewriteRule ^/test([0-9]*).html$ /test.php?id=$1
RewriteRule ^/new([0-9]*)/$ /new.php?id=$1 [R]
八、mod_rewrite 規則修正符
1) R 強制外部重定向
2) F 禁用URL,返回403HTTP狀態碼。
3) G 強制URL為GONE,返回410HTTP狀態碼。
4) P 強制使用代理轉發。
5) L 表明當前規則是最后一條規則,停止分析以后規則的重寫。
6) N 重新從第一條規則開始運行重寫過程。
7) C 與下一條規則關聯8) T=MIME-type(force MIME type) 強制MIME類型
9) NS 只用于不是內部子請求
10) NC 不區分大小寫
11) QSA 追加請求字符串
12) NE 不在輸出轉義特殊字符 /%3d$1 等價于 =$1
Apache虛擬主機下使用Rewrite實現Discuz偽靜態的配置
第一步 :當然是配置Apache支持Rewrite功能,這個不多說了,就是:
LoadModule rewrite_module modules/mod_rewrite.so
原來有注釋的就去掉注釋,原來沒有的添加上。
上面的配置中:
1.Options FollowSymLinks 這一步的配置必須有。
2.AllowOverride all 原來None的要改成all。
這兩個配置缺一不可。
第三步 ,大家就比較熟悉了也不多說了,
就是在對應的目錄下面添加.htaccess文件,下面以discuz為例說明:
RewriteEngine On
RewriteBase /
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
第四步 :配置Discuz使用偽靜態:
登錄后臺管理,進入“全局”=》“優化配置”=》“搜索引擎優化”在原來URL靜態化的地方選中,然后提交即可。