Câu hỏi Làm thế nào để kích hoạt mod_rewrite trong Apache?


Tôi vừa cài đặt LAMP stack trên hệ thống Ubuntu của mình.

Chuyển hướng không hoạt động đối với tôi. Tôi không biết cách sửa nó. Ai giúp tôi với?


159
2018-06-12 13:45


gốc


IMHO câu hỏi này không phải là Ubuntu cụ thể và nên được di chuyển đến Lỗi máy chủ. - Paolo
Đèn cài đặt OP trên UBUNTU. Bạn muốn có bao nhiêu phần mềm Ubuntu cụ thể hơn? - wojox
@ wojov: Tôi không biết về trường hợp này, nhưng đối số đó không hoạt động. "Làm thế nào tôi có thể sử dụng ứng dụng này (trên Ubuntu)?" chủ yếu là ngoài chủ đề.
Đây không phải là một "Làm thế nào tôi có thể sử dụng ứng dụng", nhưng "làm thế nào để kích hoạt một tính năng cụ thể trong Ubuntu". Apache trong Ubuntu sử dụng bố cục cấu hình khác nhau trong đó mỗi mô-đun và máy chủ ảo là một tệp trong /etc/apache2 và có thể được bật bằng a2* chương trình. - Lekensteyn
Bạn nên mô tả những gì bạn đã làm để thu hẹp vấn đề, - ericn


Các câu trả lời:


Để kích hoạt mô-đun viết lại, hãy chạy "apache2 enable module rewrite":

sudo a2enmod rewrite

Bạn cần phải khởi động lại máy chủ web để áp dụng các thay đổi:

sudo service apache2 restart

Nếu bạn định sử dụng mod_rewrite trong .htaccess các tệp, bạn cũng cần bật tính năng sử dụng .htaccess tệp bằng cách thay đổi AllowOverride None đến AllowOverride FileInfo. Đối với trang web mặc định, hãy chỉnh sửa /etc/apache2/sites-available/default:

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

Sau khi thay đổi như vậy, bạn cần phải khởi động lại Apache một lần nữa.


231
2018-06-12 13:49



Tôi đã thành công hơn với AllowOverride All - Valentin Despa
Cảm ơn! sudo a2enmod rewrite và FileInfo cố định nó cho tôi! - d-_-b
Đối với tôi tập tin đó là /etc/apache2/apache2.conf, nơi tôi tìm thấy mục nhập cấu hình đó - rahmanisback
Có thực hiện hai thay đổi đã khắc phục được sự cố. - Adelin
Nó không làm việc cho tôi. Tôi đã đăng câu hỏi ở đây askubuntu.com/questions/809619/failing-to-rewrite-url - Suhail Gupta


Tôi dám thêm một câu trả lời đặc biệt (như một phần tiếp theo cho câu trả lời tuyệt vời ở trên) về ubuntu 14.04 và .htaccess :

Trong 14.04, tên của tệp cấu hình mặc định được thay đổi thành 000-default.conf :

sudo gedit /etc/apache2/sites-available/000-default.conf

thêm phần sau vào cuối tệp:

<Directory "/var/www/html">
    AllowOverride All
</Directory>

Đối với một số lý do, trong Ubuntu 14.04 và apache2 gốc được thiết lập để /www/html. Nếu bạn muốn thay đổi gốc máy chủ web trở lại thành cũ /www, open 000-default.conf và thay đổi

DocumentRoot /var/www/html/

đến

DocumentRoot /var/www/

và sau đó tắt khóa học nó nên được

<Directory "/var/www">
    AllowOverride All
</Directory>

49
2017-10-17 13:00



Thanx cho thông tin! Điều này / cách mới, chúng tôi có thể sử dụng www như thư mục mà chúng tôi đặt tất cả các trang web, và html là theo mặc định "trang web" cho localhost. Có thể quan trọng nếu bạn đang chơi với việc mở cổng ra thế giới - theo cách này, máy chủ cục bộ của bạn không thể xem các thư mục của các dự án khác. - Vladimir Vukanac
Nó không làm việc cho tôi. tôi đang dùng Ubuntu 14.04.4 LTS - Suhail Gupta