假设我有一个域,比如说mydomain.com,在它下面的三个目录叫做dir1,dir2和dir3,那么是否有可能把一个htpasswd文件放在web根目录下,然后让authentication用户redirect到他们各自的目录用户joecorleone101经过身份validation后总是被redirect到dir3)。
首先我想知道这是否可行,其次是安全还是实用(或不切实际)? 我在想这个错误的方法吗? 我应该使用一个htaccess文件?
Apache mod_rewrite是你的朋友,它可以使用HTTP头。
RewriteEngine On RewriteCond %{REMOTE_USER} ^joecorleone101$ RewriteRule .* dir3/ [R,L]
您也可以在replace部分使用REMOTE_USER:
RewriteCond %{REMOTE_USER} ^.*$ RewriteRule .* %{REMOTE_USER}/ [R,L]
这也从.htaccess工作,但有一些行为上的差异,目录在模式匹配中被删除,并添加在替代部分。
要使用RewriteCond中匹配的值,可以使用%N(1 <= N <= 9)。
RewriteCond %{REMOTE_USER} (\d{3})$ RewriteRule .* http://www.example.com/%1 [R,L]