URL改寫==rewrite模式

能夠經過URL重寫隱藏應用的入口文件index.php,下面是相關服務器的配置參考:php

  • [ Apache ]
  1. httpd.conf配置文件中加載了mod_rewrite.so模塊
  2. AllowOverride None 將None改成 All
  3. 把下面的內容保存爲.htaccess文件放到應用入口文件的同級目錄下web

    <IfModule mod_rewrite.c>
     Options +FollowSymlinks -Multiviews
     RewriteEngine on
    
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
     </IfModule>
  • [ IIS ]

若是你的服務器環境支持ISAPI_Rewrite的話,能夠配置httpd.ini文件,添加下面的內容:服務器

RewriteRule (.*)$ /index\.php\?s=$1 [I]

在IIS的高版本下面能夠配置web.Config,在中間添加rewrite節點:框架

<rewrite>
     <rules>
     <rule name="OrgPage" stopProcessing="true">
     <match url="^(.*)$" />
     <conditions logicalGrouping="MatchAll">
     <add input="{HTTP_HOST}" pattern="^(.*)$" />
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
     </conditions>
     <action type="Rewrite" url="index.php/{R:1}" />
     </rule>
     </rules>
     </rewrite>
  • [ Nginx ]

在Nginx低版本中,是不支持PATHINFO的,可是能夠經過在Nginx.conf中配置轉發規則實現:iview

location / { // …..省略部分代碼
       if (!-e $request_filename) {
       rewrite  ^(.*)$  /index.php?s=/$1  last;
       break;
        }
     }

其實內部是轉發到了框架提供的兼容URL,利用這種方式,能夠解決其餘不支持PATHINFO的WEB服務器環境。ide

相關文章
相關標籤/搜索