【发布时间】:2020-07-22 11:39:08
【问题描述】:
我正在尝试在 .htaccess 中制定规则,以通过子域别名(带参数)访问文件夹。
sub.example.com => example.com/sub/index.php
sub.example.com/language-fr => example.com/sub/inner_page.php?lang=fr
我找到了一个带有参数的子域的简单解决方案。
RewriteCond %{HTTP_HOST} ^sub.example.com
RewriteRule ^(.*)$ /sub/inner_page.php?lang=$1 [L,NC,QSA]
这可以正常工作。当我浏览到 sub.example.com/language-fr 时,我得到了 example.com/sub/inner_page.php?lang=fr 的内容 但是当我浏览 sub.example.com 时这不起作用,我看到错误 ERR_TOO_MANY_REDIRECTS。
请告诉我如何正确指定访问 sub.example.com 和带有 sub.example.com/language-fr 等参数的内部页面的规则?
【问题讨论】:
-
您是否有其他关于
example.com/sub/的重写规则规则可以帮助我们解释(在这个htaccess 文件或sub目录中)?此外,正如我看到您重定向到inner_page的规则一样,正则表达式条件也应该适用于sub.example.com,因为(.*)也匹配为空。也许你可以试试^(.+)$ -
我没有其他的重写规则。也尝试过 ^(. +)$ ,但结果相同。我不明白问题出在哪里。
-
好的,然后进行其他 2 项测试:执行
example.com/sub/而不是使用您想要的子域线索?第二:当您删除重定向到inner_page.php的规则时,它是否可以访问sub.example.com? -
当我执行 example.com/sub/ 时,它可以正常工作。当我删除规则时,我会看到来自主域 example.com 的内容。
-
也许我需要在子文件夹的.htaccess中添加一些规则?
标签: regex apache .htaccess mod-rewrite