ThinkPHP3 伪静态和URL重写 多重匹配的简单设置
程序员文章站
2022-04-23 19:26:07
...
根据ThinkPHP3.0的手册URL重写的那一节配置Apache。
然后再网站根目录下放置.htaccess文件,内容如手册所提示的一样
win2003的空间iis6不支持.htaccess,尽可能选用linux系统的服务器
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] 转载请注明出处:http://tyllxx.iteye.com </IfModule>
虽然可以用URL_HTML_SUFFIX实现伪静态,但是这里的方法是使用.htaccess文件来实现。
以上代码可以实现让:
http://serverName/index.php/Blog/read/id/1
变为:
http://serverName/Blog/read/id/1
那么还要让其变为:
http://serverName/Blog/1.html
若还有:
http://serverName/buy/1.html
http://serverName/topic/diy.html
怎么实现呢?
以下是实现方法:(.html后缀,自己在写连接时自己加上,用URL_HTML_SUFFIX方式,去掉方法中的.html)
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT] RewriteRule ^(.*)/topic/(.*)\.html$ $1/topic/Index/index/links/$2 [QSA,PT] RewriteRule ^(.*)/buy/(.*)\.html$ $1/buy/Index/index/id/$2 [QSA,PT,L] 转载请注明出处:http://tyllxx.iteye.com </IfModule>
此方法已经验证过,只需要修改匹配字段和替换字段即可使用。