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
The automatically generated web.config is as follows
<span><?</span><span>xml version="1.0" encoding="UTF-8"</span><span>?></span> <span><</span><span>configuration</span><span>></span> <span><</span><span>system.webServer</span><span>></span> <span><</span><span>directoryBrowse </span><span>enabled</span><span>="false"</span> <span>/></span> <span><</span><span>rewrite</span><span>></span> <span><</span><span>rules</span><span>></span> <span><</span><span>rule </span><span>name</span><span>="已导入的规则 1"</span><span>></span> <span><</span><span>match </span><span>url</span><span>="."</span><span> ignoreCase</span><span>="false"</span> <span>/></span> <span><</span><span>conditions </span><span>logicalGrouping</span><span>="MatchAll"</span><span>></span> <span><</span><span>add </span><span>input</span><span>="{REQUEST_FILENAME}"</span><span> matchType</span><span>="IsFile"</span><span> ignoreCase</span><span>="false"</span><span> negate</span><span>="true"</span> <span>/></span> <span><</span><span>add </span><span>input</span><span>="{REQUEST_FILENAME}"</span><span> matchType</span><span>="IsDirectory"</span><span> ignoreCase</span><span>="false"</span><span> negate</span><span>="true"</span> <span>/></span> <span></</span><span>conditions</span><span>></span> <span><</span><span>action </span><span>type</span><span>="Rewrite"</span><span> url</span><span>="index.php"</span> <span>/></span> <span></</span><span>rule</span><span>></span> <span></</span><span>rules</span><span>></span> <span></</span><span>rewrite</span><span>></span> <span></</span><span>system.webServer</span><span>></span> <span></</span><span>configuration</span><span>></span>
5. Modify config.php
'urlManager' => <span>array</span><span>( </span>'urlFormat' => 'path', <span>//</span><span>URL 格式。共支持两种格式: 'path' 格式( 如:/path/to/EntryScript.php/name1/value1/name2/value2... ) 和'get' 格式( 如:/path/to/EntryScript.php?name1=value1&name2=value2...)。当使用'path'格式时,需要设置如下的规则:</span> 'showScriptName'=><span>false</span>, <span>//</span><span> 'urlSuffix'=>'.html',</span> 'rules' => <span>array</span>(<span>//</span><span>URL 规则。语法:<参数名:正则表达式></span> '<controller:\w+>/<id:\d+>' => '<controller>/view', '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', '<controller:\w+>/<action:\w+>' => '<controller>/<action>',<span> )</span>,<span> )</span>,
It seems that "URL_MODE"=>2 is added to the conf file in the conf directory. I don't know if this is the case
You can only manually match the old address rules and then jump to the new address.
Example:
if ( preg_match( '/cate\_detail/[^\.]+/i' ,$_SERVICE['REQUEST_URI'] ) )
{
$this->redirect($this->createUrl('category/detail', array('cate'=>'Literature')) , true, 301);
}
My URL structure originally was /cate_detail/literature.html, but later it was changed to /cate/literature.html. Just add the above code to the init() method of Controller.php, the parent class of all controllers