【问题标题】:HTACCESS redirect for multiple Vue router applications depending on URLHTACCESS 根据 URL 重定向多个 Vue 路由器应用程序
【发布时间】:2018-11-22 10:43:15
【问题描述】:

在 apache 服务器上使用 vue-router 运行三个 vue.js 应用程序。

HTACCESS 将所有不存在的路径重定向到 /folder1/index.html。现在我想在用户访问 /folder2/success > /folder2/index.html 而不是 folder1/index.html 时包含一个重定向

我当前的 HTACCESS 文件如下所示,但它不工作它仍然重定向到文件夹 1。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /folder1/index.html [L]
RewriteRule /folder2/success /folder2/index.html [L]
</IfModule>

真的坚持这一点,任何建议将不胜感激!

【问题讨论】:

    标签: .htaccess vue.js


    【解决方案1】:

    规则按照它们编写的顺序执行。由于/folder/success 不作为文件或目录存在,因此将其重写为/folder/index.html,这与您对/folder2/success 的规则不匹配。

    此外,由于它位于 .htaccess 文件中,因此它位于该文件夹的上下文中。该文件夹的前缀始终从匹配的 url 部分中删除,这意味着匹配的部分从不以斜杠开头。您应该改为匹配 folder2/success

    您的 .htaccess 文件将如下所示:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.html$ - [L]
    
    RewriteRule ^folder2/success /folder2/index.html [L]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /folder1/index.html [L]
    </IfModule>
    

    【讨论】:

    • 谢谢!这解决了它,我认为它可能已按照编写的顺序执行。 “^”有什么作用?
    • RewriteRule 的第一个参数是用于测试 url 的正则表达式。 ^ 匹配字符串的开头。例如,使用^ 可以防止与example.com/random/folder2/success 匹配的规则。
    猜你喜欢
    • 2021-12-17
    • 1970-01-01
    • 2020-09-05
    • 2011-02-28
    • 1970-01-01
    • 2018-04-09
    • 2017-07-21
    • 2020-12-18
    • 1970-01-01
    相关资源
    最近更新 更多