Mengaktifkan mod_rewrite di Amazon Linux


9

Saya mencoba mengaktifkan mod_rewrite di instance Amazon Linux. Arahan Direktori saya terlihat seperti ini:

<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>

Dan kemudian lebih jauh ke bawah di httpd.conf saya punya LoadModulearahan:

... 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...

Saya telah berkomentar semua modul Apache tidak diperlukan oleh Wordpress.

Masih ketika saya mengeluarkan http restart dan kemudian memeriksa modul yang dimuat dengan /usr/sbin/httpd -lsaya hanya mendapatkan:

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

Di dalam virtual host yang berisi situs Wordpress saya punya yang .htaccessberisi:

# 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 dimiliki oleh apache yang dijalankan oleh apache pengguna. The apachectl -tperintah kembaliSyntax OK

/etc/httpd/conf.d/vhosts.confPenampilan saya seperti ini:

<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>

Apa yang saya lakukan salah? Apa yang harus saya periksa?

Jawaban:


5

Arahan LoadModule akan memuat modul secara dinamis.

Coba keluarkan RewriteEngine ondalam virtual host diikuti oleh apachectl -tuntuk mengkonfirmasi cuaca atau tidak modul benar-benar dimuat.


Hai James, terima kasih atas jawaban yang saya tambahkan lebih detail pada pertanyaan tentang apa yang Anda tunjukkan. RewriteEngine aktif dan apachectl -t mengembalikan Sintaks OK tapi masih tidak berfungsi.
— Lorenzo

Maaf saya menghapus komentar terakhir saya itu salah. Anda telah mengambil ini dari file .htaccess wordpress bukan? Apakah Anda memiliki AllowOverride semua yang diaktifkan di konfigurasi VHost Anda?
— James Park-Watt

Hai James, ya saya sudah mengambilnya dari WP. Ya AllowOverride pada subdirektori dari DocumentRoot saya disetel ke Semua
— Lorenzo

Silakan coba ini: Di ​​konfigurasi server - bukan .htaccess tambahkan baris RewriteEngine Ondan RewriteRule ^.*$ http://www.wordpress.org/ [R]untuk mengonfirmasi apakah penulisan ulang berfungsi sama sekali. Itu harus melewati semua lalu lintas ke situs web Wordpress.
— James Park-Watt

Saya menghapus .htaccess dari WP dan melakukan perubahan yang Anda sarankan tetapi tidak berhasil.
— Lorenzo

5

Saya baru saja memulai linux amazon baru dan memiliki masalah yang sama dan Options FollowSymLinkada di sana tetapi baris berikutnya AllowOverride Noneharus diubah menjadiAllowOverride All


3

Konfigurasi saya benar tetapi saya perlu

Options FollowSymLink

dalam deklarasi DocumentRoot saya di httpd.conf agar mod_rewrite berfungsi.


1

Saya mendapat solusi untuk masalah ini .....

Saya telah berubah AllowOverride Nonemenjadi AllowOverride all, Options Indexes FollowSymLinksdi bawah ini dalam file konfigurasi/etc/httpd/conf/httpd.conf

Terima kasih!

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.