it-swarm.com.de

.htaccess funktioniert nicht mit Ubuntu 16.04.2 LTS

Ich möchte .htaccess zum Umschreiben von PHP-Webseiten verwenden. Oder auf einfache Weise "Ich möchte die .php-Erweiterung nicht verwenden", um auf eine Webseite zuzugreifen.

.htaccess-Datei (Ubuntu 14), die einwandfrei funktionierte:

RewriteEngine on
#remove the need for .php extention
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

Dieselbe .htaccess-Datei funktioniert nach dem Upgrade von AWS in Ubuntu 16.04 nicht mehr. Ich habe versucht, die Berechtigung zu ändern, den Umschreibemodus zu aktivieren und die Directory-Eigenschaft der Konfigurationsdatei von "AllowOverride None" in "AllowOverride All" zu ändern.

Nach einem Experiment stellte ich fest, dass die oben genannte .htaccess-Datei wie folgt geändert wurde, und es funktionierte einwandfrei. Aber hier ist es immer möglich, nur auf bestimmte PHP-Seiten zuzugreifen. Aber ich möchte mit keiner bestimmten PHP-Seite spezifisch sein. Ich habe auch versucht, reguläre Ausdrücke zu schreiben, aber es hat nicht funktioniert. Und es wird immer nur auf die angegebene Seite weitergeleitet.

<IfModule mod_rewrite.c><
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule . index.php [L]
</IfModule>

Kann mir jemand dabei helfen. Danke im Voraus.

2
MSVKC

Ich fand dieses Beispiel, das den Trick machen sollte:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]

Quelle:

https://stackoverflow.com/questions/4026021/remove-php-extension-with-htaccess

https://stackoverflow.com/questions/1992183/how-to-hide-the-html-extension-with-Apache-mod-rewrite

2
George Udosen

Ich hatte das gleiche Problem, hier ist die Lösung für buntu und Apache

Aktivieren Sie zuerst das Umschreiben des Moduls:

Sudo a2enmod rewrite 

Und starten Sie Apache neu

Sudo systemctl restart Apache2

Bearbeiten Sie nun für die Verzeichnisebene

Sudo vim /etc/Apache2/sites-enabled/000-default.conf

füge diese Zeilen am Ende hinzu

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

und starten Sie Apache erneut.

Sudo service Apache2 restart
1
BSB