du94414 2013-10-14 17:30
浏览 46
已采纳

理解一个简单的正则表达式

I am developing a Symfony2 PHP application. In my Wamp server, the application is stored in www/mySite/ and my index.php is www/mySite/web/app_dev.php. Because/ of that, I have URL like 127.0.0.1/mySite/web/app_dev.php

I wanted to change the path so I acces my index file just by typing 127.0.0.1. After some research, I figured out that writting this .htacces in the www folder works :

RewriteEngine on
Rewritecond %{REQUEST_URI} !^/mySite
Rewriterule ^(.*)$ /mySite/web/app_dev.php

The only problem is that I don't understand why. Does somebody explain it to me ? I don't really understand the two last line, and regex like ^(.*)$

Thanks

  • 写回答

4条回答 默认 最新

  • dongzhong2018 2013-10-14 17:34
    关注

    This is a simple regex indeed:

    ^(.*)$
    

    Let's break it up:

    • ^ - begging of a string
    • ( and ) - capture group, used to match part of a string
    • . - any character
    • .* - any charactery any number of times
    • $ - end of a string

    So, putting it all together, it means: "match any number of any characters". Later this matched part (part in parentheses) is replaced by /mySite/web/app_dev.php.

    To explain regexes a little bit more we could imagine different regexes:

    • ^lorem.*$ - string starting with word "lorem" followed by any number of any characters
    • ^$ - an empty string
    • ^...$ - a string containing three characters.

    Now, putting it all together - Apache's rewrite rules are usually built of two directives: RewriteCond and RewriteRule. The latter directive will affect only those requests which match the condition given in the RewriteCond. You can think of them as a "if-then" pair:

    # the "if" part - if request URI does not match ^/mySite
    Rewritecond %{REQUEST_URI} !^/mySite
    
    # the "then" part - then rewrite it to "/mySite/web/app_dev.php"
    Rewriterule ^(.*)$ /mySite/web/app_dev.php
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)