2015-04-13 21 views
5

Mam instancję z uruchomionym ubuntu w ec2. Mam ten plik .htaccess: -Jak włączyć .htaccess w amazon ec2 z uruchomionym ubuntu

Options +FollowSymlinks 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

Ten plik znajduje się w folderze var/www/html. Mam zamiar osiągnąć ładowanie amazon-public-dns.com/index.php jako amazon-public-dns.com/index.

Teraz próbowałem kroki: -
1) Tworzenie rewrite.conf w /etc/apache2/mods-enabled iw pliku oddanie linii LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so. (Refer this answer)
2) Uruchamianie polecenia apache2 enable module rewrite. Również w pliku /etc/apache2/sites-available/000-default.conf i pisanie to w końcu: -

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

Zauważ, że this answer powiedział edytować default. Ale ponieważ tego pliku nie było w moim przypadku, edytowałem plik 000-default.conf.
Ponownie uruchomiłem apache zgodnie z instrukcjami. Ale link amazon-public-dns.com/index daje mi 404 :(Proszę mi pomóc

EDIT. Włożyłem trochę losowe śmieci w pliku .htaccess, ale index.php nie daje żadnej wewnętrzny błąd serwera 500, co oznacza, że ​​plik .htaccess. . teraz jest ignorowany w

https://help.ubuntu.com/community/EnablingUseOfApacheHtaccessFiles

, mówią, aby umożliwić edycję tego pliku .htaccess. - /etc/apache2/sites-available/default ale nie ma takiego pliku

+0

jeśli wciąż szuka odpowiedzi, to powinno pomóc, http://webmasters.stackexchange.com/questions/61009/how-to -korzystny-z-htaccess-in-apache-on-ubuntu –

Odpowiedz

1

Domyślny plik conf /etc/apache2/sites-available/000-default.conf działa tylko wtedy, gdy ma dowiązanie symboliczne w folderze z włączonymi witrynami.

Wykonałeś wszystkie właściwe kroki. Może to być problem z sysmlink folderu dostępnych stron. Można też utworzyć dowiązania lub zaktualizować 000-default.conf z AllowOverride None do AllowOverride All wewnątrz pliku /etc/apache2/sites-enabled/000-default.conf

1

następujących robót poleceń dla mnie super!

sudo a2enmod rewrite 
sudo service apache2 restart 

Aby sprawdzić załadowane moduły

sudo apache2ctl -M 
0

Dzisiaj w obliczu dokładnie ten sam problem na przykład Ubuntu EC2.

Ten pracował dla mnie:

Place konfigurację .htaccess wewnątrz dyrektywy <IfModule ..>:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    # your config here 
</IfModule> 

Nie wiem, czy /var/www/html faktycznie uwzględnione przez serwer. Spróbuj zmienić to:

<Directory /var/www/html> 
    # your current implementation 
    AllowOverride All 
</Directory> 

dla tego jednego:

<Directory /var/www> 
    # your current implementation 
    AllowOverride All 
</Directory> 

Niniejsza dyrektywa powinna już przez nie w pliku /etc/apache2/apache2.conf.

Jeśli to nie zadziała spróbuj wykomentuj konfigurację, zwłaszcza część, która ma allow,deny i allow from all

<Directory /var/www> 
    # your current implementation 
    AllowOverride All 
    # Order allow,deny # try to comment this one out 
    # allow from all # also this one 
</Directory> 

Last but not least, należy sprawdzić, czy moduł rewrite a2enmod jest załadowany jak sugeruje @kamal -kumar i nie zapomnij ponownie uruchomić Apache.

ten pracował dla mnie, mam nadzieję, że to pomoże ktoś inny :)