2013-11-22 16 views
5

tôi đã thiết lập một máy chủ trên máy Mac của tôi (OSX 10.9) nhưng nó trả về một lỗi 500 với thông báo sau trong bản ghi lỗi ...500 Lỗi trên máy chủ apache - "AllowOverride không được phép ở đây"

[alert] [client ::1] /Users/user/Sites/mysite/.htaccess: AllowOverride not allowed here 

Dưới đây là mã trong tập tin .htaccess tôi

Options +FollowSymLinks -MultiViews 
AllowOverride All 

# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteMap lc int:toLower 
RewriteCond %{REQUEST_URI} [A-Z] 
RewriteRule (.*) ${lc:$1} [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^i/(.*)/(.*)-(.*)$ /items/?id=$1&range=$2&type=$3 [L,QSA,NC] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^c/(.*)$ /category/?menu=$1 [L,QSA,NC] 

Và đây là mã httpd.conf liên quan (cho tôi biết nếu có bất cứ điều gì khác mà có thể giúp)

DocumentRoot "/Users/user/Sites/mysite" 

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

<Directory "/Users/user/Sites/mysite"> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
</Directory> 

Bất kỳ ý tưởng nào?

+2

Chỉ thị 'AllowOverride' ra khỏi tệp' .htaccess' của bạn. Chỉ được phép trong một phần ' ' –

Trả lời

9

AllowOverride All không thuộc tệp htaccess. Nó được sử dụng trong cấu hình máy chủ (httpd.conf) để thiết lập thông số cấu hình máy chủ một tệp htaccess có thể ghi đè. Vì vậy, rõ ràng, nó sẽ là sai để có thể cấu hình những gì các thông số htaccess tập tin có thể ghi đè lên từ bên trong các tập tin htaccess.

Xóa tệp khỏi tệp htaccess của bạn. Bạn đã xác định AllowOverride All trong httpd.conf của mình ở đúng nơi.

+0

Tuyệt vời! cảm ơn. Tôi hiện đang nhận được thông báo tương tự về dòng RewriteMap. Tôi sẽ chuyển nó đến đâu? – Tom

+1

@Tom RewriteMaps không thể được xác định trong các tập tin htaccess hoặc (nhưng bạn có thể * sử dụng * chúng trong một tập tin htacces). Bạn cần phải xác định những người trong httpd.conf, nhưng ** bên ngoài của '' container **. –

0

Lấy AllowOverride Tất cả trong số .htaccess của bạn.

2

Điều khiển AllowOverride .htaccess-security và -behaviour và không thể đặt bên trong tệp .htaccess.

Thả "AllowOverride All" từ .htaccess, đó là tất cả.

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