我的根目录中有一个.htaccess文件,其中包含以下内容,以便删除www。并从我网站上的所有URL强制使用https:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule (.*) https://example.com/$1 [L,R=301]
它按预期工作,但是当我尝试访问该站点的 / admin 目录中的页面时,URL的 / admin 部分被剥夺了。因此,例如,请求 example.com/admin/foo.php 会将我重定向到 example.com/foo.php 。
在 example.com/admin 目录中,有一个.htaccess文件用于用户登录身份验证。该.htaccess文件包含以下内容:
AuthType Basic
AuthName "Administrators"
require valid-user
AuthUserFile "/home/example/.htpasswds/public_html/admin/passwd"
我尝试根据另一个用户的类似问题的答案,将以下内容添加到 example.com/admin/.htaccess 文件中:
RewriteEngine On
RewriteOptions Inherit
这没有用,我得到了相同的结果, / admin 被剥夺了。我也尝试添加以下内容:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
这也不起作用,并且给了我相同的结果。我需要在我的 example.com/admin/.htaccess 文件中添加什么,以防止网址路径的 / admin 部分被剥夺,同时又保持从我的根.htaccess文件中获取我的非www和force-https规则?