apache开启路由重写功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了apache开启路由重写功能相关的知识,希望对你有一定的参考价值。

参考技术A php程序的目录下有一个htaccess文件,这个文件起着对url重写的作用
如果我们需要重写路由,则需要在

中将

中的 AllowOverride None 改成 AllowOverride All
然后重启apache

这是打开php应用会报一个505错误,解决方法是

这样就开启了apache的路由重写功能

YII框架路由配置

  • 首先要在服务器配置(httpd.conf)中开启重写模块:
    #开启重写模块,将其前面的#去掉
    LoadModule rewrite_module modules/mod_rewrite.so
    #Directory中允许覆盖开启
    <Directory "${SRVROOT}/htdocs">
        #
        # Possible values for the Options directive are "None", "All",
        # or any combination of:
        #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
        #
        # Note that "MultiViews" must be named *explicitly* --- "Options All"
        # doesn‘t give it to you.
        #
        # The Options directive is both complicated and important.  Please see
        # http://httpd.apache.org/docs/2.4/mod/core.html#options
        # for more information.
        #
        Options Indexes FollowSymLinks
    
        #
        # AllowOverride controls what directives may be placed in .htaccess files.
        # It can be "All", "None", or any combination of the keywords:
        #   Options FileInfo AuthConfig Limit
        #
        AllowOverride All
    
        #
        # Controls who can get stuff from this server.
        #
        Require all granted
    </Directory>
  • 在目录下加入服务器配置文件.htaccess
    RewriteEngine on
    
    ###############################
    # @email [email protected]
    # @author test
    ###############################
    
    #重写规则
    #如果是一个目录或者文件,就访问目录或者文件
    RewriteCond %{REQUEST_FILENAME} !-d
    
    #如果文件存在,就直接访问文件,不进行下面的RewriteRule
    RewriteCond %{REQUEST_FILENAME} !-f
    
    RewriteRule . index.php
  • 在框架配置项\frontend\config\main.php中加入urlManager配置项
    ‘urlManager‘ => [
        ‘enablePrettyUrl‘ => true,
        ‘showScriptName‘ => false,
        //‘suffix‘ => ‘.html‘,//URL后缀
    ],
  • 对了,修改完服务器配置不要忘了重启服务器,有啥错误看服务器日志,这个很关键

以上是关于apache开启路由重写功能的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu --- lamp环境下安装php扩展和开启apache重写

PHPStudy开启rewrite_module重写功能启用.htaccess

如何配置thinkphp的伪静态重写

cisco 三层交换机开启路由功能的命令。

CentOS7 开启路由转发

Apache URL重写规则