Chúng tôi có cài đặt apache 2.2 với cấu hình này trên Ubuntu 12.04:
cat /etc/apache2/sites-enabled/000-default
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
AuthType Basic
AuthName "Please provide USERNAME AND PASSWORD!"
AuthBasicProvider ldap
Order allow,deny
Allow from all
AuthLDAPURL "ldap://foo.com/c=uk,ou=bar,o=foo.com?mail"
Require valid-user
Require ldap-attribute dept=4F4623
Require ldap-attribute emailAddress=someone@somewhere.com
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel info
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>
Nó hoạt động rất tốt với LDAP auth! Chúng tôi có ldap-utils, php5, apache2.2-common.
Câu hỏi:
Làm thế nào chúng ta có thể tạo một trang, ví dụ:
somedomain.com/selectorpage.html
chuyển hướng người dùng đã đăng nhập sang trang khác dựa trên tên người dùng của họ?
Vì vậy, nếu người dùng XY truy cập vào "selectorpage.html", thì nó sẽ được chuyển hướng ngay lập tức đến trang XY.html. Nếu người dùng AB truy cập vào "selectorpage.html", thì nó sẽ được chuyển hướng ngay lập tức đến trang AB.html. Hoặc có bất kỳ chuyển hướng apache cho điều này?
REMOTE_USER
biến thành người dùng đã đăng nhập ( AuthLDAPRemoteUserAttribution có thể trợ giúp), sau đó sử dụngmod_rewrite
để chuyển hướng: Sử dụng điều kiệnRewriteCond %{REMOTE_USER} (.*)
để lấy tên người dùng và chuyển hướng sử dụng quy tắc viết lại phản hồi sau rằng :RewriteRule .* /%1.html
, trong đó% 1 sẽ được thay thế bằng tên người dùng.