2013-06-18 59 views
12

i m bằng cách sử dụng XAMPP nhưng tôi không thể sử dụng tệp .htaccess tại máy chủ cục bộ. Tôi đang cố gắng rất nhiều lần .. Làm việc trực tuyến tốt. nhưng host nội bộ cho thấy [URL được yêu cầu không được tìm thấy trên máy chủ này].htaccess không hoạt động trên localhost với XAMPP

thư mục gốc của tôi là có thật

localhost/acre/real/property_available.php 
localhost/acre/real/properties 


<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /acre/real/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^properties$ /property_available.php/$1 [NC,QSA] 
</IfModule> 

Hãy

+0

Máy chủ cục bộ có cửa sổ hoặc hệ thống khác không? Sử dụng máy chủ ảo trên máy chủ hoặc máy chuyên dụng? Là httpd.conf OK trên localhost quá (tức là tất cả cfg khác)? Mọi dữ liệu nhật ký lỗi được ghi trên máy chủ cục bộ? Kiểm tra lại thông tin đường dẫn đó là OK (/prop....php)? –

+0

i m sử dụng windows XP – acre

+0

Bạn đã bật mod_rewrite và .htaccess chưa? DocumentRoot của bạn là gì? – anubhava

Trả lời

5

Nếu không nhìn thấy hệ thống của bạn thật khó để nói có gì sai nhưng thử sau đây (câu trả lời nhận xét nếu những điều này không hoạt động VỚI các thông báo lỗi nhật ký)

[DỪNG trường hợp máy chủ Apache của bạn. Đảm bảo nó không chạy!]

1) di chuyển máy chủ apache/cài đặt vào một thư mục mà không có tên tập tin dài và không gian

2) kiểm tra httpd.conf trong cài đặt \ thư mục conf và tìm kiếm AccessFileName. Nếu đó là .htaccess thay đổi nó vào một tập tin cửa sổ tên chấp nhận (ví dụ conf.htaccess)

3) kiểm tra lại rằng tập tin htaccess của bạn được đọc: thêm một số rác uninterpretable với nó và khởi động máy chủ: bạn sẽ nhận được số Lỗi 500. Nếu bạn không đọc, hãy truy cập lại tệp httpd.conf (nếu có vẻ OK, hãy kiểm tra xem đây có phải là tệp duy nhất định nghĩa htaccess và vị trí của nó hay không và tại một nơi - chỉ với tệp ; cũng kiểm tra xem cả tệp httpd.conf và htaccess có thể truy cập được không: không được mã hóa, quyền truy cập tệp không bị giới hạn, ổ đĩa/đường dẫn có sẵn và không có đường dẫn thư mục dài và tên tệp-)
STOP Apache một lần nữa, sau đó tiếp tục:
4) Nếu bạn có IIS quá trên hệ thống của bạn, ngăn chặn nó (gỡ bỏ nó quá nếu bạn có thể) từ services.msc

5) Thêm dòng sau vào phía trên cùng của file .htaccess hợp lệ của bạn:
RewriteEngine On
RewriteLog "/path/logs/rewrite.log" #make đường dẫn chắc chắn là có!
RewriteLogLevel 9

6) Thải của bạn [apache] \ logs thư mục (nếu bạn sử dụng một thư mục khác, sau đó một :)

7) Kiểm tra các mục sau đây được thiết lập và chính xác:
ứng dụng Action/x -httpd-php "c: /your-php5-path/php-cgi.exe"
LoadModule php5_module "c: /your-php5-path/php5apache2.dll" module
LoadModule rewrite_module/mod_rewrite.so
Tránh tên đường dẫn dài và khoảng trống trong tên thư mục để cài đặt phpX!

8) BẮT ĐẦU máy chủ apache

Bạn có thể thực hiện tất cả các bước trên hoặc thực hiện từng cuộc gọi của mình. Nhưng vào cuối ngày hãy chắc chắn rằng bạn đã thử mọi thứ ở trên!
Nếu hệ thống vẫn thổi lên và bạn không thể sửa chữa nó, sao chép thông báo lỗi & dán (s) từ thư mục log để hỗ trợ thêm

32

Chỉ có một vấn đề tương tự

giải quyết nó bằng cách kiểm tra trong httpd.conf

 # AllowOverride controls what directives may be placed in .htaccess files. 
    # It can be "All", "None", or any combination of the keywords: 
    # Options FileInfo AuthConfig Limit 
    # 
    AllowOverride All <--- make sure this is not set to "None" 

Đó là giá trị mang trong tâm trí tôi đã cố gắng (từ câu trả lời của Mark) "đặt rác trong .htaccess" đã cung cấp cho một lỗi máy chủ - nhưng mặc dù nó đã được đọc, nó đã không được hành động trên do không ghi đè nào được phép.

+0

Tôi gặp vấn đề này quá nhưng không thể tìm thấy tập tin am http.conf bất cứ nơi nào. Tôi chắc chắn nên có một? – RGriffiths

+0

Tôi nghĩ bạn nên tạo nó trong khi cài đặt mặc định. Lưu ý nó là httpd.conf – TimP

+0

Cảm ơn - đã tìm thấy nó. Truy cập thông qua bảng điều khiển Xampp. Tôi đã tìm kiếm c:/..... đường dẫn vv – RGriffiths

6

Hãy thử

<IfModule mod_rewrite.so> 
... 
... 
... 
</IfModule> 

thay vì <IfModule mod_rewrite.c>

+0

Bạn tiết kiệm cho tôi nhờ dude :) –

15

Trong conf/thêm/httpd-vhosts.conf, thêm dòng AllowOverride All cho tất cả các trang web mà bạn đang gặp vấn đề với

<VirtualHost example.site:80> 
    # rest of the stuff 
    <Directory "c:\Projects\example.site"> 
     Require all granted 
     AllowOverride All <-----This line is required 
    </Directory> 
</VirtualHost> 
+0

Điều này giải quyết vấn đề .htaccess của tôi trong một máy chủ ảo. Tôi không thấy giải pháp này được đề cập ở bất cứ nơi nào khác. Cảm ơn bạn! – nunzabar

+0

Điều này làm việc hoàn hảo cho tôi, cảm ơn! –

0

Tôi gặp vấn đề tương tự. Nhưng vấn đề nằm trong tên tập tin '.htaccess', bởi vì Windows không cho phép tên tập tin bắt đầu bằng ".", Giải pháp đã đổi tên tập tin bằng lệnh CMD. "đổi tên c: \ xampp \ htdocs \ htaccess.txt .htaccess"

+1

Bạn cũng luôn có thể tạo bất kỳ tệp nào bắt đầu bằng khoảng thời gian trong cửa sổ bằng cách nối thêm một khoảng thời gian vào tên tệp ... Vì vậy, hãy tạo tệp dưới dạng '.htaccess.' và cửa sổ sẽ thoát khỏi khoảng thời gian được nối thêm và bạn kết thúc bằng' .htaccess ' – Precastic