2010-09-19 39 views
17

Tôi mới dùng quản trị máy chủ nhưng tôi đã có thể thiết lập LAMP chạy trên VPS mới của mình. Tôi đã tải lên một vài tệp web hoạt động trên máy chủ khác của mình, nhưng chúng dường như cung cấp cho tôi lỗi: "Tệp không tồn tại" trong tệp /var/log/apache2/error.log của tôi. Trang chủ tải tốt qua kịch bản của tôi, nhưng các trang khác thì không.mod_rewrite không hoạt động

mã tập tin .htaccess

Options +FollowSymlinks 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?r=$1 [L,QSA] 

tôi đã kích hoạt mod_rewrite trên máy chủ và có thể nhìn thấy nó chạy dưới phpinfo của tôi trang() Tôi đã tạo ra. Đơn giản là không biết tại sao vấn đề này lại xảy ra. Nếu tôi cần đăng bất kỳ điều gì khác, vui lòng cho tôi biết :)

Trả lời

37

Có vẻ như trang web hoặc máy chủ ảo của bạn chưa được cấp quyền phù hợp để xử lý các tệp .htaccess. Bạn có thể kiểm tra nó một cách dễ dàng bằng cách thực hiện một cú pháp lỗi về mục đích: nếu trang web của bạn không sụp đổ, các tập tin đang được bỏ qua.

Hãy thử một cái gì đó như thế này trong chính httpd.conf tập tin của bạn:

<Directory "/path/to/your/site"> 
    AllowOverride All 
</Directory> 

... hay này (theo ý thích của bạn):

<VirtualHost *:80> 
    AllowOverride All 
</VirtualHost> 
+0

Cảm ơn nhận xét. Tôi có thể tìm tệp httpd.conf chính của mình ở đâu? – RhapX

+0

Nevermind, tôi hiểu nó. Cảm ơn bạn rất nhiều! – RhapX

+0

Bạn được chào đón. –

8

Khi tôi có vấn đề này nó bật ra rằng /etc/apache2/sites-enabled/000-default có số AllowOverride All, nhưng /etc/apache2/apache2.conf cũng có cùng mục nhập cho trang web của chúng tôi Directory với AllowOverwrite None. Vì vậy, hãy chắc chắn kiểm tra cả hai nơi!

+0

Cảm ơn bạn! Yêu bạn! Bạn đã giải quyết được vấn đề của mình <3 Tôi ghét loại tệp cấu hình này: D – sczdavos