Kích hoạt mod_rewrite trên Amazon Linux


9

Tôi đang cố gắng kích hoạt mod_rewrite trên phiên bản Amazon Linux. Chỉ thị thư mục của tôi trông như thế này:

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

<Directory "/var/www/vhosts">
    Order allow,deny
    Allow from all
    Options None
    AllowOverride All
</Directory>

Và sau đó tiếp tục xuống trong httpd.conf tôi có LoadModulechỉ thị:

... other modules...
#LoadModule substitute_module modules/mod_substitute.so
LoadModule rewrite_module modules/mod_rewrite.so
#LoadModule proxy_module modules/mod_proxy.so
... other modules...

Tôi đã nhận xét tất cả các mô-đun Apache mà Wordpress không cần.

Tuy nhiên, khi tôi phát hành http restart và sau đó kiểm tra các mô-đun đã tải với /usr/sbin/httpd -ltôi chỉ nhận được:

[root@foobar]# /usr/sbin/httpd -l
Compiled in modules:
  core.c
  prefork.c
  http_core.c
  mod_so.c

Bên trong máy chủ ảo chứa trang Wordpress tôi có .htaccesschứa:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

.Htaccess được sở hữu bởi apache, đó là apache người dùng chạy bên dưới. Các apachectl -tlệnh trả vềSyntax OK

Tôi /etc/httpd/conf.d/vhosts.conftrông như thế này:

<VirtualHost *:80>
     ServerAdmin foobar@gmail.com
     ServerName foobar.net
     ServerAlias www.foobar.net
     DocumentRoot /var/www/vhosts/foobar/
     ErrorLog /var/www/vhosts/foobar/logs/error.log
     CustomLog /var/www/vhosts/foobar/logs/access.log combined
</VirtualHost>

Tôi đang làm gì sai? Tôi nên kiểm tra cái gì?

Câu trả lời:


5

Lệnh LoadModule sẽ tải mô-đun một cách linh hoạt.

Hãy thử phát hành RewriteEngine ontrong một máy chủ ảo theo sau apachectl -tđể xác nhận thời tiết hoặc không thực sự mô-đun được tải.


Xin chào James, cảm ơn vì câu trả lời tôi đã thêm chi tiết cho câu hỏi liên quan đến những gì bạn đã chỉ ra. RewriteEngine được bật và apachectl -t trả về Cú pháp OK nhưng vẫn không hoạt động.
Lorenzo

Xin lỗi tôi đã xóa bình luận cuối cùng của tôi nó là sai. Bạn đã lấy cái này từ file .htaccess chưa? Bạn có cho phép tất cả cho phép kích hoạt tất cả trong cấu hình Vhost của mình không?
James Park-Watt

Xin chào James, vâng tôi đã lấy nó từ WP. Có, AllowOverride trên các thư mục con của DocumentRoot của tôi được đặt thành Tất cả
Lorenzo

Vui lòng thử điều này: Trong cấu hình máy chủ - không phải .htaccess thêm các dòng RewriteEngine OnRewriteRule ^.*$ http://www.wordpress.org/ [R]để xác nhận xem có phải viết lại hoạt động không. Nó sẽ vượt qua tất cả lưu lượng truy cập vào trang web Wordpress.
James Park-Watt

Tôi đã xóa .htaccess khỏi WP và thực hiện các thay đổi bạn đề xuất nhưng nó không hoạt động.
Lorenzo

5

Tôi mới bắt đầu một linux amazon mới và có cùng một vấn đề và Options FollowSymLinkở đó nhưng dòng tiếp theo AllowOverride Nonephải được đổi thànhAllowOverride All


3

Cấu hình của tôi là chính xác nhưng tôi cần

Options FollowSymLink

trong khai báo DocumentRoot của tôi trong httpd.conf để mod_rewrite hoạt động.


1

Tôi đã có giải pháp cho vấn đề này .....

Tôi đã thay đổi AllowOverride Nonethành AllowOverride all, bên dưới Options Indexes FollowSymLinkstrong tập tin cấu hình/etc/httpd/conf/httpd.conf

Cảm ơn!

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.