Chế độ viết lại httpd của Apache không hoạt động


2

Tôi đang sử dụng cấu hình gitlab này https://github.com/gitlabhq/gitlab-recipes/blob/master/web-server/apache/gitlab.conf

Đây là viết lại nhật ký

125.121.60.59 - - [14/Aug/2014:12:50:23 +0800]
 [xxx.xxx.com/sid#7f8e26a023c8][rid#7f8e26ca5be8/initial] 
(4) RewriteCond: input='/home/git/gitlab/public/uploads/foo/bar/7b02f4c192/classes.png' pattern='!-f' => matched

Tôi khá chắc chắn /home/git/gitlab/public/uploads/foo/bar/7b02f4c192/classes.pngtồn tại.

Tại sao mô hình này phù hợp?

Câu trả lời:


1

RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f

-fcần tập tin có thể đọc được bởi người dùng chạy httpd ( apachetrên centos).

Bạn có thể xác minh nó bằng cách sudo -u apache stat /path/to/file


Nếu bạn nhìn vào việc viết lại, vị trí tệp '/home/git/gitlab/public/uploads/foo/bar/7b02f4c192/classes.png' pattern='!-f' => matchedchỉ là những gì chúng ta mong đợi
jilen

Tin tôi lần này đi. Kiểm tra đó được thực hiện như tôi đã viết. Tôi có quy tắc tương tự trên một vài máy chủ. Từ tài liệu apache:REQUEST_FILENAME The full local filesystem path to the file or script matching the request
NuTTyX

Tôi đã thử nhưng vẫn không hoạt động ...
jilen

Tôi đã có thêm %. Vui lòng sao chép cả hai quy tắc và thử lại. Nếu vẫn không hoạt động, hãy kiểm tra quyền truy cập tệp và thư mục
NuTTyX

sudo -u apache ls / home / git / gitlab / public / uploads ls: không thể truy cập / home / git / gitlab / public / uploads: Quyền bị từ chối có nghĩa là apache không được phép? Tôi có quyền thay đổi bởi 'chmod a + rx' nhưng không hoạt động
jilen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.