• 在apache服务器上实现URL地址重写
  • EVAN 发表于 2016/2/25 10:33:00 | 分类标签: URL重写 apache 正则表达式
  •  

    安装启用 mod_rewrite

    在安装启用之前,编写 info.php 文件

    <?php phpinfo();?>
    

    从浏览器中打开,使用 Ctrl + F 进行查找 mod_rewrite 是否在 Loaded Modules 中, 已经存在就表示我们已经安装,不存在的话,那么,需要进行安装:

    sudo a2enmod rewrite
    

    修改 AllowOverRide 为 AllowOverRide All

    sudo vi /etc/apache2/sites-enabled/default
    

    使用正则重写链接

    这里我们将 restfull 的 url 转发为 php 文件。

    新建 .htaccess 文件

    RewriteEngine on
    RewriteRule ^/api/.*$ /api.php [L]
    
    • RewriteEngine:表示启用 rewrite
    • RewriteRule:表示这是一条 rewrite 规则
    • L:该属性表示规则匹配成功后就不需要匹配其他规则了

    在 api.php 中,通过下面的变量来获取想要的值

    $request_method = $_SERVER['REQUEST_METHOD'];
    $request_uri = $_SERVER['REQUEST_URI'];
    $request_query = $_GET;
    $request_data = file_get_contents('php://input');
    

    迁移网站重写规则

    迁移网站的时候,我们需要将旧地址都重写到新地址上去

    RewriteEngine on
    RewriteRule ^/old.php$ /new.php [R=301,L]
    

    R=301:该属性表示请求 old.php 的时候返回一个 301 的重定向


  • 请您注意

    ·自觉遵守:爱国、守法、自律、真实、文明的原则

    ·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规

    ·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品

    ·承担一切因您的行为而直接或间接导致的民事或刑事法律责任

    ·您在编程中国社区新闻评论发表的作品,本网站有权在网站内保留、转载、引用或者删除

    ·参与本评论即表明您已经阅读并接受上述条款

  • 感谢本文作者
  • 作者头像
  • 昵称:EVAN
  • 加入时间:2014/6/1 14:45:00
  • TA的签名
  • 这家伙很懒,虾米都没写
  • +进入TA的空间
  • 以下内容也很赞哦
分享按钮