官方給出的Apache重寫規則php
<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>apache
這個規則在apache fastcgi模式下會致使No input file specified.iview
修改爲優化
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]code
地址就正常重寫。server
官方給出的Nginx 重寫規則在站點的vhosts.conf中修改ci
location / { // …..省略部分代碼 if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; } }get
其實質是將URL轉化爲兼容模式input
http://serverName/index.php(或者其它應用入口文件)?s=/模塊/控制器/操做/[參數名/參數值...]it
以解決老版本Nginx不支持PATHINFO模式
高版本可優化規則爲,固然能夠不改
location / {// …..省略部分代碼 if (!-e $request_filename) { rewrite ^(.*)$ /index.php/$1 last; } }