使用基本身份validation(htaccess)来限制对特定URL的访问

我需要限制访问特定的URL,例如http://mydomain.com/this/is/the/url在我的web服务器上使用基本authentication通过Apache。 任何其他的URL都应该公开访问。 我已经看到,您可以使用以下方法将特定规则添加到文件:

<Files "mypage.html"> Require valid-user </Files> 

我的问题是所有的请求都使用mod-rewrite路由到控制器,所以我不认为我可以限制基于文件的访问。 任何想法将是最有帮助的!

您可以通过在该目录中放置一个单独的.htaccess来保护整个目录。 本教程比我能解释得更好:

http://www.addedbytes.com/lab/password-protect-a-directory-with-htaccess/

在.htacess文件中,你应该把:

 AuthType Basic AuthName "Need to login" AuthUserFile .htpasswd file location ; Require user USER //AuthName is login prompt message //AuthUserFile is physical .htpasswd file location ie C:/xampp/htdocs/basic/.htpasswd //Require user is for a specific user ie the username you want to authenticate 

要生成.htpasswd文件,您可以使用: – http://www.htaccesstools.com/htpasswd-generator/

我不确定这是否会起作用/帮助,但是您可以在应用程序web.xml中指定某些内容。

  <security-constraint> <display-name>Public access</display-name> <web-resource-collection> <web-resource-name>PublicPages</web-resource-name> <description>Public</description> <url-pattern>/servlet/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>NONE</transport-guarantee> </user-data-constraint> </security-constraint> <security-constraint> <display-name>Secured access</display-name> <web-resource-collection> <web-resource-name>SecuredPages</web-resource-name> <description>Secured pages</description> <url-pattern>/services/*</url-pattern> </web-resource-collection> <auth-constraint> <description>General Access</description> <role-name>*</role-name> </auth-constraint> <user-data-constraint> <description>SSL not required</description> <transport-guarantee>NONE</transport-guarantee> </user-data-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> <realm-name>SecurePages</realm-name> </login-config> <security-role> <description>General Access</description> <role-name>*</role-name> </security-role>