gpt4 book ai didi

apache - 从 htaccess 重写规则中删除硬编码的 url

转载 作者:行者123 更新时间:2023-12-04 18:01:57 25 4
gpt4 key购买 nike

我有一个 .htaccess 有多个规则和 3 个硬编码的 url 用于 Magento 商店:

1) 要从 URL 中删除端口号,站点在带有 Apache 的 Docker 容器中运行,Nginx 在主机上运行以将流量转发到正确的容器。由于某种原因 :80 被添加到 url,此规则将其删除:

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://domain.nl/$1 [L,R=301]

2) 从 url 中删除 index.php:

RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ https://domain.nl/$1 [R=301,L]

3)/home 重定向到 /:

redirect 301 /home https://domain.nl

现在我想在此 Magento 安装中运行多个商店,以便将多个域名链接到此安装。此 .htaccess 由于硬编码 url 而发生冲突。我试图使这些通用,但最终出现 500 个错误。如何使这 3 条规则通用?

最佳答案

找到了!经过多次尝试并使用 curl 检查 header 后,我想通了。但这仍然是一个有点奇怪的配置,因为 Nginx 将主机上的所有内容重定向到 Docker 容器中的 Apache。

1)

RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^([^:]+)(:[0-9]+)?$
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]

2)

RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ https://%{HTTP_HOST}/$1 [R=301,L]

3)

RewriteRule ^home/?$ https://%{HTTP_HOST}/ [nc,R=301,L]

关于apache - 从 htaccess 重写规则中删除硬编码的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33799123/

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