được tìm kiếm trong 2 ngày và không thể có được giải pháp đúng do tôi thiếu hiểu biết về mod_rewrite và hạn chế về thời gian cho dự án này để hy vọng ai đó có thể giúp đỡ..htaccess trong subdirectory 'overriding' parent htaccess
Mục đích
Để viết lại tất cả các yêu cầu đến index.php root nếu khách hàng không có cookie chính xác. Nếu khách hàng có cookie chính xác cho phép họ duyệt theo ý muốn.
Vấn đề
Các .htaccess trong thư mục con của tôi đang tiến hành precendence hơn htaccess gốc của tôi, vì vậy yêu cầu như www.mydomain.com/subdir/index.php arn't bị chuyển hướng.
.htaccess Rễ ta
Options FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_COOKIE} !^.*pass.*$
RewriteCond %{REQUEST_URI} !^/index.php$
RewriteRule ^(.*)$ http://www.mydomain.com/index.php?url=$0 [NC]
subdir htaccess My
RewriteEngine On
RewriteBase/
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
thông tin bổ sung
Lý tưởng nhất là tôi đang cố gắng để tạo ra một khu vực được bảo vệ mật khẩu, vì vậy tất cả các yêu cầu được chuyển đến index.php một mật khẩu có thể được nhập vào và khi xác minh một cookie được tạo ra, cho phép duyệt miễn phí các nội dung và thư mục con. Vì vậy, nếu có một cách tốt hơn để thực hiện điều này thì xin vui lòng cho tôi biết, và tôi không đi cho .htpasswd kể từ khi tôi cần đăng nhập tùy chỉnh, lỗi và các trang splash.
Ngoài ra, subdht .htaccess là trình xử lý URL ExpressionEngine.
Cảm ơn.
Bất kể thế nào bạn khắc phục điều này, kiểm tra sự hiện diện của một cookie là không tốt Bảo vệ. Nó là tầm thường với giả mạo, và vì bạn không xác thực dữ liệu trong cookie, chỉ cần kiểm tra sự hiện diện của nó), hệ thống "bảo mật" của bạn là tầm thường để bỏ qua. –
@ Chỉ là một gợi ý nhưng bạn đã nghĩ đến việc triển khai xác thực HTTP, nếu bạn chỉ tìm cách cho phép truy cập vào directorys: http://uk.php.net/manual/en/features.http-auth.php –