2011-10-05 37 views
17

Tệp chỉ mục tồn tại và hoạt động. Khi tôi tạo ra tập tin .htaccess với dòng CHỈ:RewriteEngine khi đưa ra lỗi 403

RewriteEngine On 

Bất kỳ trang trên máy chủ mang lại cho tôi:

Truy cập bị cấm!

Bạn không được phép truy cập đối tượng được yêu cầu. Nó là được bảo vệ đọc hoặc không thể đọc được bởi máy chủ.

Nếu bạn cho rằng đây là lỗi máy chủ, vui lòng liên hệ với quản trị viên web. Lỗi 403 mysite.com Wed 05 tháng 10 22:25:25 2011 Apache/2.2.3 (Linux/SUSE)

Một số thông tin máy chủ:

Loaded Modules lõi prefork http_core mod_so mod_actions mod_alias mod_auth_basic mod_authn_file mod_authz_host mod_authz_groupfile mod_authz_default mod_authz_user mod_authn_dbm mod_autoindex mod_cgi mod_dir mod_env mod_expires mod_include mod_log_config mod_mime mod_negotiation mod_setenvif mod_ssl mod_suexec mod_userdir mod_rewrite mod_php5

Apache phiên bản:

chủ server_software Apache/2.2.3 (Linux/SUSE)

Cũng đã làm điều này:

Options FollowSymLinks 

Trong phần thư mục của httpd.conf

Log nói chỉ thực tế của lỗi, không lý do:

89.112.xx.x - - [05/Oct/2011:22:32:34 +0200] "GET /info.php HTTP/1.1" 403 1040 "-" "Mozilla/5.0 (Windows NT 6.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1" 
::1 - - [05/Oct/2011:22:32:45 +0200] "GET/HTTP/1.0" 200 1 "-" "Apache/2.2.3 (Linux/SUSE) (internal dummy connection)" 

Nhờ sự giúp đỡ!

+0

Vui lòng kiểm tra liên kết bên dưới. Nó sẽ giúp bạn http://stackoverflow.com/questions/22621643/turning-rewriteengine-on-creates-403-error-how-to-turn-on-followsymlinks#answer-22623427 –

Trả lời

2

Nguyên nhân có khả năng nhất là tệp conf chính của bạn có quyền hạn chế. Bạn có một dòng như:

<Directory /> 
    AllowOverride None 
</Directory> 

trong tệp conf chính của bạn? Điều này sẽ khiến bạn không thể thay đổi về cơ bản bất cứ thứ gì bằng cách sử dụng tệp .htaccess.

Bạn có thể tìm hiểu thêm về apache permissions trên trang web của họ.

+0

Có, đã có dòng "AllowOverride None", tôi đã xóa nó, khởi động lại apache, nhưng nó vẫn mang lại cho tôi 403. Dưới đây là phần thư mục hiện tại: Tùy chọn FollowSymLinks (đây là AllowOverride None) thứ tự từ chối, cho phép Deny từ khắp nơi Dmitry

+0

Thay vì xóa dòng AllowOverride, hãy thay đổi nó thành TẤT CẢ hoặc một tập hợp con thích hợp của chức năng bạn muốn. Có thêm thông tin về các tùy chọn đó tại [trang web apache] (http://httpd.apache.org/docs/1.3/mod/core.html#allowoverride) –

+0

Ngoài ra, bạn muốn đảm bảo rằng bạn không có tùy chọn khác Khai báo danh mục giới hạn quyền Ghi đè ở đâu đó trong tệp conf của bạn và tiện ích mở rộng mod_rewrite được bật. –

30

Nơi

Options +SymLinksIfOwnerMatch 

như dòng đầu tiên của tập tin .htaccess bạn. Điều đó đã khắc phục vấn đề cho tôi.

+5

'+ FollowSymLinks' là bắt buộc đối với công cụ viết lại. Nếu bạn nhìn vào mỗi thư mục viết lại trên [tài liệu apache] (http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html), bạn sẽ thấy điều này. Ngoài ra '+ SymLinksIfOwnerMatch' có thể được sử dụng, mặc dù tôi nghĩ rằng tất cả điều này phụ thuộc vào cấu hình apache của bạn, liên quan đến hiệu suất và bảo mật. – upful

+1

'Tùy chọn + FollowSymLinks' đã giúp tôi. Cảm ơn. –

+3

Làm việc như một sự quyến rũ ... Sẽ biết ơn nếu bạn cũng có thể giải thích tại sao. –

1

Kiểm tra httpd.conf để biết khối mã. Theo mặc định trên một mac nó khá hạn chế.Nếu nó chỉ là địa phương và bạn không quan tâm đến nhiều, bạn có thể mở nó lên như:

<Directory /> 
    Options All 
    AllowOverride All 
    Order deny,allow 
    Allow from all 
</Directory> 

Điều đó có thể giúp, hoặc, có thể là quyền của tệp./Var/log/apache2/error_log và/var/log/apache2/access_log cũng có thể cung cấp cho bạn chi tiết hơn một chút về những gì đang diễn ra.

Các vấn đề liên quan