.html entfernen via .htaccess, nur wie?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
#Für PHP
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]

#Für HTML
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [QSA,L]

Razzer123 
Fragesteller
 31.01.2018, 16:21

Funktioniert nicht.

0
Prolativ  31.01.2018, 16:22
@Razzer123

Hast du die Dateiendung der Dateien im Verzeichnis entfernt?

0
Razzer123 
Fragesteller
 31.01.2018, 16:26
@Prolativ

Nein. Die Datei .htaccess liegt im gleichen Verzeichnis wie die index Datei und aus irgendeinem Grund funktioniert es einfach nicht. Ich kann mir auch nicht erklären wieso..

0
Prolativ  31.01.2018, 16:28
@Razzer123

Echt merkwürdig. Habs eben selber getestet und funktioniert einwandfrei.

Starte mal deinen Server neu, evtl. hilft das.

0
Razzer123 
Fragesteller
 31.01.2018, 16:32
@Prolativ

"RewriteEngine On", muss in die 1. Zeile richtig?

0
Razzer123 
Fragesteller
 31.01.2018, 16:36
@Razzer123

Nun steht dort, dass ich keine Rechte habe, um diese Seite zu benutzen.

1
Prolativ  31.01.2018, 16:45
@Razzer123

Ja, könnte daran liegen. Füg die Zeile ganz oben ein.

RewriteEngine on
0
Razzer123 
Fragesteller
 31.01.2018, 16:52
@Prolativ

Habe testweise die Datei wieder gelöscht und jetzt kann ich nirgends mehr drauf zugreifen. Besitze übrigens auch NGINX, hatte ich vergessen zu erwähnen.

0
Prolativ  31.01.2018, 16:55
@Razzer123

Wenn die Webseite über NGINX läuft, kein Wunder dass das funktioniert.

Dann versuch mal das:

location / {
    try_files $uri $uri/ @rewrite;
}
location @rewrite {
    rewrite ^ $uri.php last;
}
location ~ \.php$ {
    try_files $uri =404;
}
1
Razzer123 
Fragesteller
 31.01.2018, 18:22
@Razzer123

Okay, habe NGINX jetzt entfernt. Aber der obere Code funktioniert trotzdem nicht.

0

Nachdem ich mir die anderen Antworten durchgelesen habe und der Code von Prolativ definitiv funktioniert wäre es vielleicht hilfreich, wenn du mal konkret sagst, was du vorhast. Ich vermute nämlich, dass du etwas anderes meinst als du hier sagst. Mit "Endung entfernen" und "funktioniert nicht" ist der Spielraum mit Möglichkeiten, die man da reininterpretieren könnte einfach zu groß.


Verwendest du jetzt nginx oder Apache ?

Bei Nginx gibt es nämlich keine .htaccess-Dateien.

Da bei dir die Lösung Prolativ nicht Funktioniert (die absolut korrekt ist) vermute ich dass du nginx verwendest.

In der Regel liegen deine Konfigurationsdateien unter "/etc/nginx/sites-available/".

Für deine Seite müsstest du im "server"-block dann folgendes eintragen:

server { // bereits vorhanden
  rewrite ^(.*)\.(html|php)(\?.*)?$ $1$3 permanent;
  try_files $uri.html $uri.php;
  ...

PS: funktioniert nicht mit fastcgi !!!


Razzer123 
Fragesteller
 01.02.2018, 17:46

Ich nutze Apache2, habe NGINX entfernt.

0
n0b0dyelse  02.02.2018, 09:16
@Razzer123

Ok, grundsätzlich sollte die Lösung von Prolativ dann eigentlich funktionieren.

Wie sieht denn deine vhost-konfiguration aus ?

Die liegt unter /etc/apache2/sites-available/

0

Warum sollte man Dateiendungen entfernen wollen?


Razzer123 
Fragesteller
 31.01.2018, 16:21

Weil es so für Weiterleitungen schöner aussieht.

0