日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Apache地址重写的几个问题

發(fā)布時間:2025/6/17 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Apache地址重写的几个问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? ? Apache地址重寫的配置分為兩種方式,即通過httpd.conf配置和.htaccess文件。

????? 首先要打開rewrite模塊,windows下的配置是

LoadModule rewrite_module modules/mod_rewrite.so

?

????? httpd.conf的配置可以全局生效,也可以只配置一個目錄,需要做的事情是在相應(yīng)目錄的Directory標(biāo)簽下配置Rewrite規(guī)則。

????? .htaccess的則放到相應(yīng)目錄下(或者根目錄)即可,這是VPS里常用的一種方式,畢竟作為一個VPS購買者不可能要求提供商去更改全局配置文件。這種方式需要注意的有如下兩點:

????? 首先,.htaccess要想起作用,必須要在httpd.conf中相應(yīng)的Directory標(biāo)簽下配置AllowOverride All(默認(rèn)是None),其次是windows下這種無文件名僅有擴展名的文件是無法直接生成的,可以在cmd窗口下使用copy con命令來生成(這命令也有年頭了,我小學(xué)的時候還學(xué)過,光陰荏苒啊,扯遠(yuǎn)了…),Ctrl+Z<Enter>保存。

???? 然后我們說一下幾個概念。

???? 首先是RewriteEngine,這是地址重寫的引擎,可以方便的設(shè)置為On或者Off來啟用和關(guān)閉引擎。

???? 其次是RewriteCond,地址重寫的條件,符合這個條件的才進(jìn)行表達(dá)式判斷和重寫,這樣能有效減少匹配的條數(shù),提高重寫效率。

???? 最后是RewriteBase和RewriteRule,RewriteBase指明重定向地址的基礎(chǔ),即RewriteRule后一部分重定向地址會拼合上RewriteBase,合成一個完整的重定向地址。這在一個web容器下有多個網(wǎng)站的時候比較有用。

???? RewriteRule才是我們討論的主要話題。RewriteRule實現(xiàn)把符合表達(dá)式的地址重定向到另一個地址的功能,RewriteRule的語法類似于下面

RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2

????? RewriteRule緊跟著判斷表達(dá)式,之后是需要重定向的位置,正則表達(dá)式()會捕獲一個分組,然后通過$n引用這個分組,從而實現(xiàn)地址重寫。RewriteRule匹配的開始位置是整個URL去掉當(dāng)前目錄后剩下的部分,比如我在/discuz配置上面所示的RewriteRule,然后輸入一個URL-http://localhost/discuz/forum-1-1.html,被用來匹配的輸入會是forum-1-1.html,也就是前面的/discuz/被吃掉了。對于整個問題,我們可以用如下的語句驗證。

RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)\.html$ rewrite.php?param=$1

注:在rewrite.php里打印一下GET['param’]參數(shù)

???? 另外這里需要說明的是,如果我定義了

RewriteBase /discuz

???? 那么前面的^forum-([0-9]+)-([0-9]+)\.html$不受影響,但是后面會變成/discuz/forumdisplay.php?fid=$1&page=$2。不過RewriteBase并不是必須的,若有指定RewriteBase,結(jié)果為RewriteBase+重定向地址,否則為當(dāng)前目錄+重定向地址。這里當(dāng)前目錄指的是.htaccess所在目錄(使用.htaccess的時候)或者Directory標(biāo)簽指定的目錄(使用httpd.conf的時候)。

???? 以上操作在windows下測試通過。

參考文獻(xiàn):

[1]Apache中RewriteCond規(guī)則參數(shù)介紹,

http://hi.baidu.com/%D2%BB%CE%C4%CC%EC/blog/item/ace7f14e19851cc4d0c86af2.html

[2]RewriteRule-htaccess詳細(xì)語法使用教程,

http://www.3code.cn/rewriterule-htaccess%E8%AF%A6%E7%BB%86%E8%AF%AD%E6%B3%95%E4%BD%BF%E7

轉(zhuǎn)載于:https://www.cnblogs.com/sdqxcxh/archive/2012/04/02/2430239.html

總結(jié)

以上是生活随笔為你收集整理的Apache地址重写的几个问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。