狀況描述:301轉向就不再多解釋了,一般的linux系統平臺上的網站在設置301轉向的時候都是在根目錄下添加.htaccess文件,文件里寫相應的語句就可以了。但是我們可能會在這個網站的子目錄安裝不同的系統,比如在網站的forum文件夾目錄下安裝了discuz論壇,而你默認又啟用了discuz的偽靜態設置的話,則更根目錄的301轉向設置對這個forum目錄是不起作用的。 現象描述:訪問verydz.com可以自動301跳轉到www.verydz.com;但是訪問verydz.com/forum不會自動301跳轉到m.yaqcbj.com/forum。 原因分析: 301轉向是通過.htaccess這是rewrite語句來實現的,而forum文件夾下的discuz論壇也啟用了.htaccess 的rewrite語句來設置偽靜態,在兩者沖突的情況下,以當前目錄為準。于是,根目錄的301轉向不在forum目錄有效了。 解決方法:修改forum目錄的.htaccess文件,再多添加一條對應的301 rewrite語句。 具體要實現三個目標:
1.先把http://verydz.com重定向到http://m.yaqcbj.com
2.再把http://verydz.com/forum重定向到http://m.yaqcbj.com/forum
3.同時要對DZ論壇的偽靜態也起作用,使得http://verydz.com/forum/thread-155-1-1.html這樣的地址也能成功重定向到http://m.yaqcbj.com/forum/thread-155-1-1.html 根目錄設置301轉向的代碼可以寫成如下: - RewriteEngine On
- RewriteCond %{HTTP_HOST} ^verydz.com$
- RewriteRule ^(.*)$ http://m.yaqcbj.com/$1 [R=301,L]
復制代碼 但forum文件夾下的.htaccess文件就有變化了: - # 將 RewriteEngine 模式打開
- RewriteEngine On
- # 修改以下語句中的 /discuz 為你的論壇目錄地址,如果程序放在根目錄中,請將 /discuz 修改為 /
- RewriteBase /forum
- # Rewrite 系統規則請勿修改
- RewriteCond %{HTTP_HOST} ^verydz\.com
- RewriteRule ^(.*)$ http://m.yaqcbj.com/forum/$1 [R=301,L]
復制代碼
然后這個下面跟著的就是DZ論壇原有的偽靜態規則了
|