最近基于thinkphp5開發(fā)了個導(dǎo)購網(wǎng)站cq2.cn,主要獲得天貓優(yōu)惠券和淘寶折扣券。現(xiàn)在有時間,將遇到的偽靜態(tài)問題整理下,與大家分享。
1.設(shè)置URL偽靜態(tài)
在config.php中設(shè)置,如果只想前臺URL偽靜態(tài),那么只在前臺的config.php文件中設(shè)置就可以,如下:
'URL_MODEL'=>2,
'URL_HTML_SUFFIX' =>'.html',
這樣就可以將原來如:
改動前:http://www.cq2.cn/index.php?m=index&a=index
改動后:http://www.cq2.cn/index.php/Index/index.html
其中'URL_MODEL'=>2設(shè)置url的方式,'URL_HTML_SUFFIX' =>'.html'設(shè)置后綴。
2.將index.php隱藏。
官網(wǎng)提供了比較詳細(xì)的linux下的配置方式,參考官網(wǎng)就可以,我這邊主要
提供IIS下面的偽靜態(tài)配置,先直接給出兩種環(huán)境下的配置。
*支持.htaccess文件的配置如下
創(chuàng)建一個.htaccess文件,內(nèi)容為:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
保存后放到網(wǎng)站的根目錄下就可以。
*IIS下的配置如下
創(chuàng)建一個web.config,內(nèi)容為:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="rule 3S" stopProcessing="true">
<match url="^(.*)$" />
<conditi>
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditi>
<action type="Rewrite" url="/index.php/{R:1}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
同理保存放到網(wǎng)站的根目錄下就可以,這兩個環(huán)境的路由規(guī)則是一樣的,因此實現(xiàn)的功能效果也是一樣的。
改動前地址::http://www.cq2.cn/index.php/Index/index.html
改動后地址:http://www.cq2.cn/Index/index.html
3.URL地址簡化
如果覺得我們以上的偽靜態(tài)地址路徑層次夠深,想直接在根目錄下的地址如:
http://www.cq2.cn/index_index.html
對搜索引擎更友好,那么可以在配置文件中設(shè)置:
'URL_PATHINFO_DEPR' => '_',
這樣就可以簡化URL的層級。
改動前地址:http://www.cq2.cn/Index/index.html
改動后地址:http://www.cq2.cn/Index_index.html
4.排除CSS、png等資源文件
我們設(shè)置完偽靜態(tài)后可能,在訪問頁面的時候可能會出現(xiàn)部分css、圖片等無法加載 的問題,那么我們可以設(shè)置路由規(guī)則,排除指定的文件類型,這樣就不會受影響。
規(guī)則如下,由于.htaccess的排除規(guī)則網(wǎng)上很多,這里不再詳述,基于IIS下的資料 比較少,目前提供IIS下的配置內(nèi)容 。
<rule name="rule 2S" stopProcessing="true">
<match url="(.*\.(js|ico|gif|jpg|png|flv|swf|css))$" />
<action type="Rewrite" url="//{R:1}" />
</rule>
5.設(shè)置絕對路徑.
如果以上方法還未完全解決路徑問題,那么您的資源文件的路徑最好設(shè)置為絕對路徑,可以以開頭。
綜合以上的幾個步驟,網(wǎng)站的偽靜態(tài)工作,應(yīng)該可以完美解決了,今天就寫到這了,希望對大家有用。