一、什么是路由重写

  原本的HTTP访问地址: www.test.com/index.php?r=post/view&id=100  表示这个请求将由PostController 的 actionView来处理。

  重写后的HTTP访问地址 www.test.com/post/view/id/100  这样的链接看起来简洁美观,对于用户比较友好。同时,也比较适合搜索引擎的胃口, 据说是SEO的手段之一。

二、Apache 路由重写

  (一)开启Apache的重写模块

    1. 打开apache的config的 hhttpd.conf 将 #LoadModule rewrite_module modules/mod_rewrite.so  的#号去掉

    2. 重启Apache服务器即可

  (二)虚拟主机配置

    1. 打开 Apache\conf\vhosts.conf配置路径

    2. 将配置修改为如下:

<VirtualHost 127.0.0.1:>
ServerName test-yii2.com
DocumentRoot F:/wamp64/www/yii2/frontend/web
<Directory "F:/wamp64/www/yii2/frontend/web">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
RewriteEngine on
# 如果请求的是真实存在的文件或目录,直接访问
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 如果请求的不是真实文件或目录,分发请求至 index.php
RewriteRule . index.php
</Directory>
</VirtualHost>

    3. 重启Apache

  (三)还有另外一种配置方式,无需重启Apache服务器,当时改当时生效。

    1. 在 “F:/wamp64/www/yii2/frontend/web”  目录下增加 .htaccess 代码如下:    

    RewriteEngine on
# 如果请求的是真实存在的文件或目录,直接访问
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 如果请求的不是真实文件或目录,分发请求至 index.php
RewriteRule . index.php

  (四) YII配置

    1. 在main.php下 components这个数组中增加如下如下配置:

        'urlManager' => [
'enablePrettyUrl' => true, //开启美化url配置,默认关闭
'enableStrictParsing' => false, //不启用严格解析,默认不启用.如果设置为true,则必须建立rules规则,且路径必须符合一条以上规则才允许访问
'showScriptName' => false, //隐藏index.php
'rules' => [
// http://frontend.com/site/index 重写为 http://frontend.com/site
'<controller:\w+>/'=>'<controller>/index',
    // http://frontend.com/site/view?id=1 重写为 http://frontend.com/site/1
'<controller:\w+>/<id:\d+>' => '<controller>/view',
    // http://frontend.com/site/ceshi?id=123 重写为 http://frontend.com/site/ceshi/123
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
]
],

    

Yii2 Apache + Nginx 路由重写的更多相关文章

  1. Nginx 路由重写

    很多时候我们的真实路由是隐藏的,都经过重写后展现到前台,下面简单写两个我经常用到的几个: 一般在配置*.host(在http里面引入的server配置)的时候会用到每个不同网址的路由重写,每一个rew ...

  2. yii2下的路由重写

    1.在config/main.php中添加配置信息 文件位置如图所示(图中展示的是backend下的config,也可以在fronted和common的config中添加) 配置的代码标准格式如下 ' ...

  3. Apache Nginx URL 地址 重写

    URL重写这东西在工作中用了很多次了,但每次都忘记了要记得把知道的积累下来. 哎,要么认为没必要,要么就是没时间?! 一.Apache 篇 官方地址:http://man.chinaunix.net/ ...

  4. yii2项目实战-路由美化以及如何正确的生成链接

    yii2项目实战-路由美化以及如何正确的生成链接 更新于 2016年12月17日 by 白狼 被浏览了 705 次 美化路由 何为美化路由呢?美化嘛,无外乎就是给路由化化妆,让她好看点.我虽没化过妆, ...

  5. 很不错的NGINX URL重写实例

    转自:http://www.jbxue.com/article/2187.html 本文介绍nginx URL重写的相关知识,包括301重定向的内容等,希望对大家有所帮助. nginx rewrite ...

  6. nginx url 重写 [转]

    本文转自 http://www.jbxue.com/article/2187.html 本文介绍nginx URL重写的相关知识,包括301重定向的内容等,希望对大家有所帮助. nginx rewri ...

  7. php框架Yaf路由重写

    php框架Yaf路由重写 通常为了友好的URL格式,会进行站点URL的重写,可以在webserver(Nginx)的配置中进行rewrite,也可在在程序端进行 以下使用Yaf框架进行URL的重写,进 ...

  8. Apache+Nginx+php共存(一)

    在实际开发中个人的电脑中经常需要安装 WNMRP.WAMRP.LNMRP.LAMRP等各种开发环境来应对不同的开发需求. 此篇主要是对WINDOWS系统下 Apache+Nginx + PHP +My ...

  9. nginx 路由配置

    nginx中location对url匹配: 语法:location [=|~|~*|^~] /uri/ { … } 当匹配中符合条件的location,则执行内部指令:如果使用正则表达式,必须使用~* ...

随机推荐

  1. HDU 6185(打表代码

    /** @xigua */ #include <cstdio> #include <cmath> #include <iostream> #include < ...

  2. MySQL基准测试--innodb_buffer_pool_instances

    http://blog.chinaunix.net/uid-26896862-id-3345441.html 目的 根据现有硬件环境下,测试MySQL单实例下,在数据量小于innodb_buffer_ ...

  3. php mongodb driver

    yum install -y PHP-devel php-pear httpd-devel pecl install mongo 执行以上命令后,你需要修改php.ini文件,在php.ini文件中添 ...

  4. 使用Hadoop API 解压缩 HDFS文件

    接上篇:使用Hadoop API 压缩HDFS文件 压缩完了,当然需要解压缩了. 直接上代码: private static void getFile(String filePath) throws ...

  5. 2019.01.03 bzoj3456: 城市规划(生成函数+多项式取对)

    传送门 生成函数好题. 题意:求n个点的简单(无重边无自环)无向连通图数目 思路: 对简单无向图构造生成函数f(x)=∑n2Cn2xnn!f(x)=\sum_n2^{C_n^2}\frac{x^n}{ ...

  6. java正则表达式笔记

    import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.regex.PatternSyntax ...

  7. JSAAS 平台实现 微信类似的TOKEN机制

    在企业微信中,我们在调用微信接口时,我们需要首先获取token,然后根据token,调用API接口方法.这个token是有生命周期的,微信的token默认的生命周期是7200秒. 因此这个token可 ...

  8. jquery页面隐藏和展开之间切换

    html页面: <p id="myp4">默认情况下,这段话是隐藏的,点击按钮以后,这段话就展开,并且按钮上的值改变</p> <button id=& ...

  9. 添加全局函数$.extend和对象方法$.fn

    ## $(function () { $.fn.shadow = function (opts) { return this.each(function () { var defaults = { / ...

  10. idea操作快捷键

    Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ ...