gpt4 book ai didi

apache - Vue.js + Apache ,如何编写多入口的重定向规则?

转载 作者:行者123 更新时间:2023-12-05 05:55:37 25 4
gpt4 key购买 nike

我有一个 vue.js 应用程序,它包含 2 个入口点 (2 个 SPA)。其中一个是 index.html,服务于客户端网站,另一个是服务于平台 (platform.html)

根据 Vue CLI 文档,我在我的 .htacess 文件中使用了以下内容

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

这仅在我只有 index.html 并且当我输入 myUrl.com/platform 时才有效,它不会更改为平台。我已经尝试了以下但无法使其工作

<IfModule mod_rewrite.c>
<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^platform(.*)$ platform.html [L]
RewriteRule ^(.*)$ index.html [L]

</IfModule>
</IfModule>

最佳答案

假设任何以 platform 为前缀的 URL应该发送到platform.html和其他一切index.html那么你可以在你的根目录中做类似下面的事情 .htaccess文件:

DirectoryIndex index.html

RewriteEngine On

# Optimisation - prevent rewritten requests for the front-controller being reprocessed
RewriteRule ^index\.html$ - [L]
RewriteRule ^platform\.html$ - [L]

# Prevent static resources being routed through the app
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

# Any URLs that start "/platform" (whole path segment only) are sent to "/platform.html"
RewriteRule ^platform($|/) platform.html [L]

# All other URLs are sent to "/index.html"
RewriteRule . index.html [L]

RewriteBase此处不需要指令。

您不需要 <IfModule>包装器,除非这些指令是可选的(它们不是)。 (以这种方式嵌套这些包装器没有意义。)参见 my answer到网站管理员堆栈上的以下问题以获得更多讨论:Is Checking For mod_write Really Necessary?

请注意,对文档根目录的请求实际上并没有被上面的指令重写,而是被发送到 index.html通过 DirectoryIndex指令 - 这通常已在服务器上配置,因此此处可能不需要指令。

更新:由于您的网址类似于 /platform/<subroute> , 而不是 /platform<something> , 上述规则中的正则表达式会更好为 ^platform($|/) ,而不仅仅是 ^platform , 为了仅匹配整个路径段并避免可能匹配太多,例如 /platformsomething . (我已经更新了上面的代码。)

^platform($|/)火柴platformplatform/something , 但不是 platformsomething .

关于apache - Vue.js + Apache ,如何编写多入口的重定向规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69426773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com