• 技术文章 >后端开发 >PHP问题

    php如何修改url

    藏色散人藏色散人2020-07-03 10:37:26原创1063

    php修改url的方法:1、通过配置文件修改URL规则;2、设置URL伪静态,即限制伪静态的后缀;3、在配置文件中开启路由支持,并配置路由;4、将URL进行重写即可。

    PHP对URL设置

    一、URL规则

    1、默认是区分大小写的

    2、如果我们不想区分大小写可以改配置文件

     'URL_CASE_INSENSITIVE'=>true,               //url不区分大小写

    3、如果模块名为 UserGroupAction

    那么url找模块就必要要写成

    http://localhost/thinkphp4/index.php/user_group/index

    4、如果'URL_CASE_INSENSITIVE'=>false

    那么url也可以写为

      http://localhost/thinkphp4/index.php/UserGroup/index

    二、URL伪静态

     'URL_HTML_SUFFIX'=>'html|shtml|xml',//限制伪静态的后缀

    三、URL路由

    1、启动路由

    要在配置文件中开启路由支持

    2、使用路由

    1.规则表达式配置路由

       'my'=>'Index/index',//静态地址路由
       ':id/:num'=>'Index/index',//动态地址路由
       'year/:year/:month/:date'=>'Index/index',//动态和静态混合地址路由
       'year/:year\d/:month\d/:date\d'=>'Index/index',//动态和静态混合地址路由

    加上 \d代表类型只能是数字

       'my/:id$'=>'Index/index',// 加上$说明地址中只能是 my/1000 后面不能有其他内容了

    2.正则表达式配置路由

       '/^year\/(\d{4})\/(\d{2})\/(\d{2})/'=>'Index/index?year=:1&month=:2&date=:3'

    3、注意事项:

    1.越复杂的路由越往前面放

      'URL_ROUTE_RULES'=>array(
        'my/:year/:month:/:day'=>'Index/day',
        'my/:id\d'=>'Index/index',
        'my/:name'=>'Index/index',
        )

    2.可以使用$作为完全匹配的路由规则

         'URL_ROUTE_RULES'=>array(
          'my/:id\d$'=>'Index/index',
          'my/:name$'=>'Index/index',
          'my/:year/:month:/:day$'=>'Index/day',
       ),

    3.用正则匹配的方式

        'URL_ROUTE_RULES'=>array(
        '/^my\/(\d+)$/'=>'Index/index?id=:1',
        '/^my\/(\w+)$/'=>'Index/index?name=:1',
        '/^my\/(\d{4})\/(\d{2})\/(\d{2})$/'=>'Index/day?year=:1&month=:2&day=:3',
        ),

    四:URL重写

    (1):将Apache---〉httpd.conf下的rewrite开启:

    #LoadModule rewrite_module modules/mod_rewrite.so   将 # 去掉即可

    (2):AllowOverride None 将None改为 All:即

    <Directory "D:/wamp/cgi-bin">
        AllowOverride None
        Options None
        Require all granted
    </Directory>

    (3):确保URL_MODEL设置为2(不用修改)

    (4):把下面的内容保存为.htaccess文件放到入口文件的同级目录下

    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
    </IfModule>

    然后重启Apache

    以上就是php如何修改url的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php url
    上一篇:php json串如何转对象 下一篇:php如何隐藏版本
    大前端线上培训班

    相关文章推荐

    • 解决php中url传参乱码的问题• url中文名称是什么?• PHP cURL是什么?• php base64如何进行URL字符串编码和解码?

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网