403 Truy cập bị cấm qua url sạch .htaccess nhưng có thể được truy cập trực tiếp


1

Ai đó có thể giúp tôi giải mã apache2 error_log của tôi không?

[Sat Nov 19 17:39:59 2011] [error] [client ::1] client denied by server configuration: /Library/WebServer/Documents/Users
[Sat Nov 19 17:39:59 2011] [error] [client ::1] client denied by server configuration: /Library/WebServer/Documents/favicon.ico

Thư mục này thậm chí không tồn tại. Và hầu hết mọi người đều có một địa chỉ khách hàng tốt như 127.0.0.1 nhưng vì tôi đang dùng Mac OS Lion nên ai đó đã bảo tôi cập nhật tệp máy chủ của mình để có cái này

127.0.0.1   localhost
::1         localhost 
fe80::1%lo0 localhost

Tôi không chắc chắn vấn đề là gì. Nếu tôi điều hướng đến một cái gì đó như:

http://localhost/kl/n/

Tôi không có vấn đề gì và được chào đón với trang chỉ mục (được đặt thành start.php bởi tệp .htaccess). Tuy nhiên nếu tôi cố gắng đăng nhập tại:

http://localhost/kl/n/login

Mà được cho là được chuyển đến http: //localhost/kl/n/login/login.php Tôi nhận được quyền truy cập 403 bị cấm với các lỗi được đề cập ở trên trong apache2 error_log của tôi. Bây giờ tôi không có vấn đề thực sự sẽ http: //localhost/kl/n/login/login.php . Nó tồn tại và hoạt động tốt. Để xem đó có phải là sự cố với địa chỉ không, tôi đã tạo một biến không xác định cho error_log để ném và khi tôi truy cập trực tiếp qua url đầy đủ, tôi gặp lỗi này trong error_log:

[Sat Nov 19 18:00:32 2011] [error] [client ::1] PHP Notice:  Undefined variable: orange2 in /Users/myusername/Sites/cloud/kl/n/styles/colors.php on line 127, referer: http://localhost/kl/n/login/login.php

Vì vậy, đối với lỗi 403 để nói:

You don't have permission to access /Users/myusername/Sites/cloud/kl/n/login/login.php on this server.

Là một chút kỳ lạ với tôi. Bất kỳ trợ giúp nào hoặc bất cứ điều gì để kiểm tra sẽ được đánh giá rất cao. Tôi dường như không thể tiếp tục vì toàn bộ trang web đang phụ thuộc rất nhiều vào các url sạch này và đó cũng sẽ là một rắc rối lớn để thay đổi tất cả các liên kết hiện đang được phát triển và sau đó lại được sản xuất. Cảm ơn bạn rất nhiều.

EDIT 11/21/11 2:42 chiều: Tôi quyết định thêm một số thông tin để giúp đỡ bất cứ ai thậm chí đang cố gắng giúp tôi (Nào các bạn, tôi không thể là người duy nhất phải đối mặt với điều này, nó giống như một ai đó người khác phải chạy vào. Không có người dùng MAMP nào có .htaccess viết lại trên máy chủ của họ bị cấm 403?)

Trong thư mục trang web của tôi có một tệp có tên httpd-vhosts.conf và đây là:

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

Alias /kl "/Users/myusername/Sites/cloud/kl"

# For http://localhost in the OS X default location 
<VirtualHost _default_:80> 
    ServerName localhost 
    DocumentRoot /Library/WebServer/Documents 
</VirtualHost> 

Trong /etc/apache2/httpd.conf Tôi đã bỏ ghi chú dòng có thể kích hoạt php5 và thay đổi các dòng này:

# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.  
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
#User _www
#Group _www
User myusername
Group _www

Tôi đã thử điều này với cả _www và tên người dùng bình thường, không giúp gì cho vấn đề. Tôi cũng đã thay đổi những dòng này trong /etc/apache2/httpd.conf

# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
#DocumentRoot "/Library/WebServer/Documents"
DocumentRoot "/Users/myusername/Sites"

#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories). 
#
# First, we configure the "default" to be a very restrictive set of 
# features.  
#
<Directory />
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Deny from all
</Directory>

#
# Note that from this point forward you must specifically allow
# particular features to be enabled - so if something's not working as
# you might expect, make sure that you have specifically enabled it
# below.
#

#
# This should be changed to whatever you set DocumentRoot to.
#
# old path
#<Directory "/Library/WebServer/Documents">
# new path
<Directory "/Users/myusername/Sites">

Một lần nữa bất kỳ trợ giúp về điều này sẽ được đánh giá cao. Tôi thực sự hy vọng tôi không phải là người duy nhất thiết lập MAMP và gặp vấn đề với .htaccess trên MAC OS X Lion.


CẬP NHẬT ngày 31 tháng 1 năm 2012:

Tôi không còn cài đặt Lion nữa, nhưng tôi gặp vấn đề tương tự với Snow Leopard. Tôi không chắc liệu bản sửa lỗi cho tôi cũng đã hoạt động ở đây chưa, nhưng tôi bao gồm nó trong trường hợp nó giúp được bất cứ ai. Về cơ bản, bạn phải thêm phần này cho bạn .htaccess sau dòng ghi RewriteEngine On

RewriteBase /~myusername/path/to/root/dir

Vì vậy, nếu bạn phải trỏ đến localhost / ~ myusername / First-thư mục dưới trang web, thì bạn sẽ thêm

RewriteBase /~myusername/first-folder-under-sites

và kết hợp với thiết lập httpd.conf mở (nghĩa là không phải như vậy trong bài viết của tôi, nhưng thay vào đó là kém an toàn hơn như :)

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

bạn tốt nhất là không nên có vấn đề gì.

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.