由於客戶網站SEO優化需要,需要吧原本網站的PHP檔名及帶有變數的PHP網都址改成html,以利搜尋引擎優先排序,所以需要做一下的設定工作。
1、如果是自己架的xampp伺服器需要找到httpd.conf檔案,用筆記本打開
如果前面有#號吧#拿掉即可,這樣就啟用mod_rewrite功能了,如果是租虛擬主機大部分的mod_rewrite都是啟用的,如果沒有啟用可以寫信請主機商開啟這項設定即可。
2、找到需要轉換成.html的模組資料夾,例如我們需吧
http://test.com/modules/news/index.php的php都顯示為html,那就在news資料夾中建立一個.htaccess檔,然後用筆記本打開編輯
假設我們要吧
http://test.com/modules/news/index.php 讓他顯示為 http://test.com/modules/news/index.html
可以在.htaccess中輸入
其中的RewriteBase 是檔案的位置,如果是根目錄就輸入
即可,完成設定後儲存,當然如果就這樣更新瀏覽器是沒用的,還是會顯示http://test.com/modules/news/index.php,必須手動輸入 http://test.com/modules/news/index.html,如果有出現網站內容就表示設定成功了,mod_rewrite已經吧index.php檔名改成index.html 了。
3、如果是遇到有帶變數的的網址,例如http://test.com/modules/news/view.php?id=1,可以這樣設定
http://test.com/modules/news/view-1.html
如果是帶兩個或多個變數的網址,例如
http://test.com/modules/news/view.php?id=1&cat_id=2
可以這樣設定
這樣就會顯示為
http://test/modules/news/view-1page2.html
4、如果不是數字的變數,而是英文字或是加上數字組合成的變數,例如像是這樣的
http://test.com/index.php?sid=center
可以這樣設定,輸入
RewriteEngine on
RewriteBase /
RewriteRule ^index-([a-zA-Z0-9_-]+)\.html$ index.php?sid=$1
就會顯示為
http://test.com/index-center.html
1、如果是自己架的xampp伺服器需要找到httpd.conf檔案,用筆記本打開
xampp\apache\conf\httpd.conf搜尋以下的設定
LoadModule rewrite_module modules/mod_rewrite.so
如果前面有#號吧#拿掉即可,這樣就啟用mod_rewrite功能了,如果是租虛擬主機大部分的mod_rewrite都是啟用的,如果沒有啟用可以寫信請主機商開啟這項設定即可。
2、找到需要轉換成.html的模組資料夾,例如我們需吧
http://test.com/modules/news/index.php的php都顯示為html,那就在news資料夾中建立一個.htaccess檔,然後用筆記本打開編輯
假設我們要吧
http://test.com/modules/news/index.php 讓他顯示為 http://test.com/modules/news/index.html
可以在.htaccess中輸入
RewriteEngine on
RewriteBase /modules/news
RewriteRule ^index.html index.php
其中的RewriteBase 是檔案的位置,如果是根目錄就輸入
RewriteBase /
即可,完成設定後儲存,當然如果就這樣更新瀏覽器是沒用的,還是會顯示http://test.com/modules/news/index.php,必須手動輸入 http://test.com/modules/news/index.html,如果有出現網站內容就表示設定成功了,mod_rewrite已經吧index.php檔名改成index.html 了。
3、如果是遇到有帶變數的的網址,例如http://test.com/modules/news/view.php?id=1,可以這樣設定
RewriteEngine on這樣就會顯示為
RewriteBase /modules/news
RewriteRule ^view-([0-9]+)\.html$ view.php?id=$1
http://test.com/modules/news/view-1.html
如果是帶兩個或多個變數的網址,例如
http://test.com/modules/news/view.php?id=1&cat_id=2
可以這樣設定
RewriteEngine on
RewriteBase /modules/news
RewriteRule ^view-([0-9]+)page([0-9]+)\.html$ view.php?id=$1&cat_id=$2 [PT]
這樣就會顯示為
http://test/modules/news/view-1page2.html
4、如果不是數字的變數,而是英文字或是加上數字組合成的變數,例如像是這樣的
http://test.com/index.php?sid=center
可以這樣設定,輸入
RewriteEngine on
RewriteBase /
RewriteRule ^index-([a-zA-Z0-9_-]+)\.html$ index.php?sid=$1
就會顯示為
http://test.com/index-center.html
5、設定好.htaccess之後,雖然網址是可以顯示為.html的但還需要修改網站的按鈕與連結,包括php迴圈產生的網址,全部改成.html才行,例如以下為一個Xoops的模組tpl所帶出的變數網址。
<{foreach item=item from=$block key=key}>
<a href="<{xoAppUrl /}>modules/news/view.php?id=<{$item.hid}>""><{$item.name}>
</a>
<{/foreach}>
原本是會產生
view.php?id=1
view.php?id=2
view.php?id=3
view.php?id=4
view.php?id=5
php的動態網址,所以需要修改為
<{foreach item=item from=$block key=key}>
<a href="<{xoAppUrl /}>modules/news/view-<{$item.hid}>.html""><{$item.name}>
</a>
<{/foreach}>
<a href="<{xoAppUrl /}>modules/news/view-<{$item.hid}>.html""><{$item.name}>
</a>
<{/foreach}>
這樣連結就會顯示為
view-1.html
view-2.html
view-3.html
view-4.html
view-5.html
以達到製作偽.html頁面的目的,如果檔案是包在php裡面沒輸出樣板,也是一樣的修改方法,在迴圈中吧變數改網址加上.html即可。
教學撰寫 徐嘉裕 Neil hsu
留言
張貼留言