開啟apache的mod_rewrite功能
#tar -zxvf httpd-2.0.59.tar.gz
#cd httpd-2.0.59
#./configure --prefix=/opt/apache2 --enable-so --enable-module=rewrite --enable-shared=rewrite --enable-shared=max
#make
#make install[@more@]
下面介紹一下怎樣開啟apache的mod_rewrite功能。
zhy1899
聖騎士
會員UID:131228
註冊時間:2004-2-7 09:54
最後登入:2007-5-17 10:13
帖子總數:
精華帖子: 0
積分:91
線上狀態:...離線...
首先來重新編譯安裝apache-2.0.59
#tar -zxvf httpd-2.0.59.tar.gz
#cd httpd-2.0.59
#./configure --prefix=/opt/apache2 --enable-so --enable-module=rewrite --enable-shared=rewrite --enable-shared=max
#make
#make install
apache安裝完畢,下面來載入編譯mod_rewrite.so這個模組。
#cd /soft/httpd-2.0.59/modules/mappers
#/opt/apache2/bin/apxs -c mod_rewrite.c -lgdbm
#gcc -shared -o mod_rewrite.so mod_rewrite.o -lgdbm
#/opt/apache2/bin/apxs -i -A -n rewrite mod_rewrite.so
最近,專案需要在已經編譯好的Apache上以動態方式載入rewrite模組。於是,我們在網上找了許多資料,但都講解得不是很詳細且格式錯位問題嚴重。所以我們有必要把這一過程再重述一遍。實際操作步驟如下:
工作現場描述:
Linux 2.4.21
apache_1.3.34.tar.gz 解壓後的目錄為 /root/apache_1.3.34 文中簡稱為“原始碼目錄”
apache安裝目錄 /usr/local/apache 文中簡稱為“目標目錄”
步驟:
1、Apache安裝rewrite模組的時候需要DBM支援,否則無法編譯,所以首先要安裝一個GDBM
下載地址:
安裝步驟:
進入安裝目錄,
./configure
make
make install
make install-compat (最後行也要執行。否則無法編譯出ndbm.h標頭檔案)
如果您不能確定伺服器上是否已經裝有DBM,那麼可以安裝一下。否則這步可以跳過。
2、現在到apache原始碼目錄的標準模組目錄中(/root/apache_src/src/modules/standard/)中,使用如下指令編譯出so檔案:
/usr/local/apache/bin/apxs -c mod_rewrite.c -lgdbm
即可得到mod_rewrite.so檔案。
備註:"-lgdbm"是用為說明在編譯mod_rewrite.c時要把gdbm連結進來。這樣在第6步啟動apache時就不會報出"dbm fetch"的錯誤了。
3、現在讓apache的apxs來自動向http.conf配置檔案中加入LoadModule語句並將mod_rewrite.so檔案複製到apache/libexec目錄
/usr/local/apache/bin/apxs -i -A -n rewrite /root/apache_1.3.34/src/modules/standard/mod_rewrite.so
備註:命令中的rewrite引數是告訴apxs命令mod_rewrite.so檔案中的模組名。在命令執行後,apxs會在LoadModule中為rewrite加上"_module"以標名模組名稱。如果你在啟動apache時發現總是給出“不能定位API”之類的錯誤,那就是說明LoadModule後面的模組名的語法要根據您的apache版本加以改變。
4、停止apache
apache/bin/apachectl stop
5、執行配置檔案檢查命令
apache/bin/apachectl configtest
如顯示Syntax OK,則表示整個操作成功。那麼可以到第6步。否則根據提示資訊進行除錯。但只要按照此文所說進行操作是不會出錯的。
6、啟動apache
apache/bin/apachectl start
現在檢視phpinfo的資訊
Loaded Modules mod_dir mod_imap mod_actions mod_userdir mod_alias mod_rewrite mod_so sapi_apache2
表明我的機器就支援rewrite了,但是我的dz怎麼不能靜態呢?
要修改以下配置
1.在配置檔案(通常就是 conf/httpd.conf)中加入如下程式碼
RewriteEngine On
RewriteRule ^(.*)/archiver/([a-z0-9-]+.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 ^(.*)/profile-(username|uid)-(.+).html$ $1/viewpro.php?$2=$3
RewriteEngine On
RewriteRule ^archiver/([a-z0-9-]+.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 ^profile-(username|uid)-(.+).html$ viewpro.php?$1=$2
儲存。
2.檢查論壇所在目錄中是否存在 .htaccess 檔案,如果不存在,請手工建立此檔案。檔案內容為:
RewriteEngine On
# 修改以下語句中的 /discuz 為你的論壇目錄地址,如果程式放在根目錄中,請將 /discuz 修改為 /
RewriteBase /
RewriteRule ^archiver/([a-z0-9-]+.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 ^profile-(username|uid)-(.+).html$ viewpro.php?$1=$2
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8806316/viewspace-915342/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Apache開啟GZIP壓縮功能方法Apache
- Apache DolphinScheduler如何開啟開機自啟動功能?Apache
- Apache在Windows下使用Mod_rewrite模組ApacheWindows
- 利用apache的mod_rewrite做URL規則重寫Apache
- mod_rewrite模組
- Apache 開啟gzip壓縮Apache
- 開啟Oracle的審計功能Oracle
- iPhone開啟CarPlay功能方法 iPhone如何開啟CarPlay功能?iPhone
- SQLServer開啟CDC功能SQLServer
- centos設定Apache開機啟動CentOSApache
- 開啟oracle的flashback閃回功能Oracle
- win10怎麼開啟wifi功能_win10開啟無線wifi功能的方法Win10WiFi
- Apache Spark和Hive有用的功能ApacheSparkHive
- SQLServer開啟CDC功能(3)SQLServer
- SQLServer開啟CDC功能(2)SQLServer
- windows開啟ping功能Windows
- mod_rewrite模組詳解(轉)
- 開啟資料庫的閃回功能:資料庫
- Apache開啟gzip壓縮提高網站速度Apache網站
- apache下開啟ssl訪問,即httpsApacheHTTP
- Win10反色功能如何開啟 Win10電腦中開啟反色功能的方法Win10
- nginx,apache的alias和認證功能NginxApache
- 【Mysql】mysql開啟審計功能MySql
- ZBlog開啟固定域名功能
- 開啟Mac的桌布自動更換功能Mac
- 開啟一個新時代: Apache HBase 1.0 釋出Apache
- Win10系統生物識別功能如何開啟 windows10開啟生物識別功能的步驟Win10Windows
- 怎麼開啟Windows 8下的隱藏功能Windows
- win10怎麼開啟錄屏_win10開啟錄屏功能的方法Win10
- win10系統怎麼開啟DirectPlay_windows10開啟DirectPlay功能的方法Win10Windows
- 如何開啟win10家庭版的組策略功能_win10家庭版怎麼開啟組策略功能Win10
- Apache hudi 核心功能點分析Apache
- MySQL的查詢快取功能何時該開啟MySql快取
- 開啟樹莓派的硬體看門狗功能樹莓派
- 如何開啟/關閉 GitLab 的版本檢查功能?Gitlab
- 在macOS 如何開啟NTFS讀寫功能Mac
- 開啟mysql 資料庫審計功能。MySql資料庫
- 開啟轉發IP功能(IP forwarding)Forward