重定向到www。在受保护的文件夹中使用htaccess文件

时间:2017-01-05 17:04:20

标签: .htaccess redirect

您好我的网站上的UNIX服务器上有一个受密码保护的文件夹和一个非www的htaccess文件。重定向到www。但由于某种原因,我无法使其适用于受保护的文件夹。我已经尝试将代码添加到受保护文件夹中的htaccess文件但它不起作用服务器只返回401 Authorization Required错误,并且不接受任何用户和密码。 任何想法如何让它工作?

例如,

http://domain.net/password-protect/good-url.php 返回401错误页面,同时: http://domain.net/subfolder/good-url.php

这是根文件夹中的htaccess代码: 代码1。

RewriteEngine on

 RewriteCond %{HTTP_HOST} !^www\. [NC]
 RewriteCond %{SERVER_PORT} 443
 RewriteRule ^(.*)$ http://www.domain.net/$1 [R=301,L]

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

在我的密码保护文件夹中: 代码2。

  AuthName "Ins"
  AuthUserFile "/home6/gingerc3/.htpasswds/public_html/password-subfolder/passwd"
  AuthType Basic
  require valid-user

我尝试在Code1上进行标记。到Code2。但它不起作用。 www。 rewrite在其他子文件夹中工作正常但不受密码保护。

顺便说一句,将以下代码添加到Code2。确实有效。 CODE3。

RewriteEngine on

Redirect 301 /password-protect/bad-url.php http://www.domain.net/password-protect/good-url.php

感谢。

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题。老实说。我没有真正理解这些代码,我添加了Code1的第一部分。因为有人建议我这样做。看着它,我不知道为什么我应该使用服务器端口443,这是我第一个警告,可能会删除该部分。我废弃了所有代码,并使用了主机助手应用程序。创建一个通配符重定向而不是使用子文件夹我基本上替换了" /"在"的地址中。"在文件名中,现在一切都在同一个文件夹中,并使用htaccess文件来密码保护所有文件,从以前的文件夹名称开始。

RewriteEngine on
 RewriteCond %{HTTP_HOST} ^domain.net$
 RewriteRule ^(.*)$ "http\:\/\/www\.domain\.net\/$1" [R=301,L]

<Files file-name.*>
AuthType Basic
AuthName "Restricted Area"
AuthUserFile "/home6/user/.htpasswds/public_html/passwd"
require valid-user
</Files>

现在效果很好。提示:如果更改htaccess文件,则第一次检查时可能会出错。首先尝试刷新页面。