技術(shù)問答

      基于thinkphp5的URL偽靜態(tài)優(yōu)化建議

      2018-12-03
      0
      最近基于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)該可以完美解決了,今天就寫到這了,希望對大家有用。
      部分文章來源與網(wǎng)絡(luò),若有侵權(quán)請聯(lián)系站長刪除!

      推薦產(chǎn)品