【问题标题】:Apache Location regex is not matching pathsApache Location 正则表达式与路径不匹配
【发布时间】:2017-04-11 04:08:35
【问题描述】:

我只是试图通过更改虚拟主机设置以使用代理设置来将我的 apache 服务器指向 node.js 应用程序,并且当我尝试通过它使块匹配所有位置时它仅匹配具有 1 级深度 url 的 url路径。 /example 有效,但 /example/damn 无效。所以我尝试将正则表达式更改为 which is even overkill 但我想我会尝试它,我一直在尝试很多其他正则表达式组合,但没有一个捕获 URL。我可能会补充一点,上面的这个正则表达式实际上根本没有捕获任何东西,它只是在我获得 url 时显示我的网站的索引列表。唯一有效的正则表达式是“/*”,但它的深度不会超过 1 url /path/anotherpath

我检查了我的正则表达式应该匹配 https://regex101.com/ 的所有内容,但 apache 仍然没有捕获它。

这是我的配置

<VirtualHost *:80>

        ServerName my.dev
        ServerAdmin ireply@myleisure.com.au
        DocumentRoot /home/ggg/Dropbox/host-root/var/www/myleisure.com.au

        ProxyRequests Off
        ProxyPreserveHost On
        ProxyVia Full

        <Proxy "*">
                Require all granted
        </Proxy>

        <Location "(.*)*">
                ProxyPass http://localhost:3000
                ProxyPassReverse http://localhost:3000
        </Location>



</VirtualHost>

【问题讨论】:

    标签: node.js apache express routing


    【解决方案1】:

    这里引用 Apache 指令配置documentation page

    该指令限制了所附范围 通过 URL 的指令,方式与 .然而,它 将正则表达式作为参数而不是简单的字符串。

    因此,请尝试使用:

    <LocationMatch "(.*)*">
            ProxyPass http://localhost:3000
            ProxyPassReverse http://localhost:3000
    </LocationMatch>
    

    【讨论】:

    • 但是非常感谢。我仍然意识到我需要阅读文档。但在我看来,我不想冒险错过某些东西或在文档中没有意识到某些东西,所以我宁愿看看是否有人遇到了同样的问题。我猜你只是阅读了文档。这是我需要努力的技能。非常感谢游牧民族
    猜你喜欢
    • 2020-09-30
    • 2011-11-19
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 2022-10-19
    • 2022-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多