IIS下 Yii Url重寫,iisyiiurl重寫
Options +FollowSymLinks IndexIgnore */* RewriteEngine on # if a directory or a file exists, use it directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # otherwise forward it to index.php RewriteRule . index.php
自動產生的web.config如下
xml version="1.0" encoding="UTF-8"?><configuration> <system.webServer> <directoryBrowse enabled="false" /> <rewrite> <rules> <rule name="已匯入的規則 1"> <match url="." ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> conditions> <action type="Rewrite" url="index.php" /> rule> rules> rewrite> system.webServer>configuration>
5. 修改config.php
'urlManager' => array( 'urlFormat' => 'path', //URL 格式。共支援兩種格式: 'path' 格式( 如:/path/to/EntryScript.php/name1/value1/name2/value2... ) 和'get' 格式( 如:/path/to/EntryScript.php?name1=value1&name2=value2...)。當使用'path'格式時,需要設定如下的規則: 'showScriptName'=>false,// 'urlSuffix'=>'.html', 'rules' => array(//URL 規則。文法:<參數名:Regex> '/' => '/view', '//' => '/', '/' => '/', ), ),
YII架構在IIS伺服器下怎重寫來改變URL
好像是在conf目錄下conf檔案裡面添加&#39;URL_MODE&#39;=&gt;2;不知道是不是這樣
YII 重寫URL規則後,怎讓原來的舊地址,載入時也變成新地址
只能手動正則匹配舊地址規則,然後跳轉到新地址了.
例子:
if ( preg_match( '/cate\_detail/[^\.]+/i' ,$_SERVICE['REQUEST_URI'] ) )
{
$this->redirect($this->createUrl('category/detail', array('cate'=>'文學')), true, 301);
}
原來我的網址結構是 /cate_detail/文學.html, 後來改成/cate/文學.html 這樣形式的。在所有controller的父類Controller.php的init()方法裡加上上面的代碼即可
http://www.bkjia.com/PHPjc/899448.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/899448.htmlTechArticleIIS下 Yii Url重寫,iisyiiurl重寫 Options +FollowSymLinks IndexIgnore */* RewriteEngine on # if a directory or a file exists, use it directly RewriteCond %{REQUEST_FILENAME} !...