mod-rewrite - 如何创建 RewriteRule 以同时使用主域和子域?
问题描述
我的服务器有 IPv6 地址,但由于 IPv6 在某些网络中无法正常工作,我创建了一个只有 IPv4 地址的子域,它指向与我的服务器相同的 IP。这一切都是为了服务于我的 Nextcloud 安装。
在服务器上,两个名称(server.org 和 subdomain.server.org)都来自同一个目录树。除了 RewriteRules 之外,它们都工作正常。
我在 .htaccess 上有 RewriteRules 来处理 .well-known/carddav 等事情,这些规则在我的主域上运行良好,但不适用于子域。这是 .htaccess 文件:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^\.well-known/host-meta /nextcloud/public.php?service=host-meta [QSA,L]
RewriteRule ^\.well-known/host-meta\.json /nextcloud/public.php?service=host-meta-json [QSA,L]
RewriteRule ^\.well-known/webfinger /nextcloud/public.php?service=webfinger [QSA,L]
RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav/ [R=301,L]
</IfModule>
我曾尝试将这些 RewriteRules 添加到/etc/apache2/sites-enabled/subdomain-le-ssl.conf
,但这也没关系。我只是得到 404 未找到。
解决方案
怀特先生的评论为答案提供了线索。
关于 .htaccess 覆盖,“AllowOverride All”行仅在主域的 conf 文件中。当我也将它添加到子域的 conf 文件时,RewriteRules 开始工作。谢谢!
推荐阅读
- vue.js - 如何创建第一个 vue js 项目
- java - JAVA SWING GUI:代码没有产生正确的输出
- python - 是否有标准的拟合度量来验证探索性因素分析?
- r - 在ggplot中为两条水平线添加单个图例
- java - 需要帮助了解 NullPointerException
- sql - 针对 Excel 工作表的 SQL 查询不起作用
- python - Pandas - H:M:S 字符串格式的数学运算
- javascript - Websocket php SSL连接Apache2 2.4
- sql - 前一个(未知)日期的 SQL 值
- c++ - 无法使用 glibc-2.17 在 CentOS 7 上运行 uWebSockets