2017-11-20 2 views
0

Ich habe ein .htaccess:.htaccess Abfrage-String und umleiten

RewriteEngine On 

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png)$ 
RewriteRule ^(.*)$ index.php?v=$1 [NC,L,QSA] 

ErrorDocument 404 /src/html/404.php 

Und in meinem index.php ich die 'v' Variable und prüfen, ob die Seite in der Datenbank vorhanden sind .

Wenn die Seite existiert, werde ich den Inhalt der Seite einfügen und wenn die Seite nicht existiert, werde ich die 404 Fehlerseite einfügen.

Alles funktioniert ohne Probleme, außer wenn ich versuchen, ein vorhandenes Verzeichnis zugreifen wie:

example.com/src

Es wird automatisch umleiten:

example.com/src /? v = src

Und zeigen Sie die Fehlerseite

Aber

wenn ich versuche, mit:

example.com/src/ (mit '/' am Ende der URL)

Es wird die URL hält und zeigt die Fehlerseite! (Dies ist, was ich brauche)

Jetzt möchte ich wissen, wie kann ich das gleiche Ergebnis erreichen, wenn die URL ohne '/' endet?

Antwort

0

ich eine schwierige Lösung gefunden, aber ich weiß nicht, ob es eine gute Idee ist oder nicht ist!

I edited meine .htaccess Datei und das hinzugefügt:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^.*[^/]$ /$0/ [L,R=301] 

Dies funktioniert gut, außer es ein "/" an das Ende der URL hinzufügen wird (es ist kein Problem, aber ändern die URL, die ich nicht mag)

0

hinzufügen 2 Zeilen für die URL Überprüfung ist nicht wirklich eine Datei oder einen Ordner existiert

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png)$ 
RewriteRule ^(.*)$ index.php?v=$1 [NC,L,QSA] 
+0

Dies wird es am schlimmsten machen! Es wird die Verzeichnisse auflisten! – Soheyl