2014-09-06 21 views
9

Tôi vừa tạo máy chủ của mình và tôi cần sử dụng các tệp .htaccess, một trong số chúng hoạt động và một tệp khác không ... Rõ ràng để .htaccess hoạt động, bạn cần bật AllowOverride, và vì vậy tôi đã làm dưới: /etc/apache2/sites-available/default Thay đổi này:Ubuntu 12.04 AllowOverride All ném lỗi máy chủ nội bộ

<Directory /var/www/> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride None 
    Order allow,deny 
    allow from all 
</Directory> 

Để này:

<Directory /var/www/> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride All 
    Order allow,deny 
    allow from all 
</Directory> 

Khi tôi khởi động lại apache toàn bộ trang web của tôi bây giờ ném lỗi 500 Internal Server Error

Tệp .htaccess của tôi có chứa:

RewriteEngine on 

# if a directory or a file exists, use it directly 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

# otherwise forward it to index.php 
RewriteRule . index.php 

Bất kỳ ai cũng biết tại sao?

+0

Bạn có một cái gì đó trong htaccess của bạn? –

+0

Có, xin lỗi bạn vừa thêm nó! – Shepard

+1

Bạn đã bật ** mod_rewrite ** chưa? Điều gì xảy ra nếu htaccess của bạn trống? –

Trả lời

16

Cấu hình apache của bạn có vẻ ổn với tôi.

Bạn nhận được 500 Internal Server Error có nghĩa là htaccess của bạn hiện đã được thực thi.
Nếu bạn không bật mod_rewrite bạn sẽ gặp phải các lỗi như vậy.

Nên hoạt động như mong đợi khi đã bật mod_rewrite.
Ngoài ra, đừng quên thêm một RewriteBase (mà sẽ ngăn chặn các vấn đề trong tương lai với các thư mục ảo)

RewriteEngine on 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule^index.php [L] 
+0

Tập tin có chứa từ RewriteBase ở đâu? – Lunatikul

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