0

我对 htacess 和 modrewrite 了解不多,所以我发现自己陷入了另一个困境,为自己接近这个新领域。

我将针对 2 个不同的问题分开我的查询,以使答案具有主题性,并更好地针对寻找自己问题的解决方案的用户。

让我首先从一个应该很容易但我可能忽略了的开始;

RewriteCond %{http_host} ^domain.com.au [nc]
RewriteRule ^(.*)$ https://www.domain.com.au/$1 [R=301,NC]

如您所见,我想要 www。在 URL 中,我还使用 php 脚本强制使用 https,但认为最好简单地使用它来处理这两者,这样用户就不必等待 2 次转发发生。

上面的代码似乎工作正常,但它会将您带到域的根目录。

http://domain.com/index.php?page=hello
http://domain.com/dir/index.php?page=hello
http://domain.com/dir17/sub/index.php?page=hello

上述所有 3 个 URL 将重定向到https://www.domain.com/index.php?page=hello

显然这与 modrewrite 的目录深度有关,但我不知道如何确保它在本地将其应用于每个目录,而不是简单地指向根目录。

我一如既往地感谢你的帮助,这个网站上一群了不起的人:)

4

1 回答 1

0

这有点晚了,但意识到它从未发布过答案。但是,经过大量研究后,我确实解决了它;

RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

我当然希望这对其他人有所帮助。

于 2015-05-30T12:54:42.773 回答