Ankündigung

Einklappen
Keine Ankündigung bisher.

allgemeine .htaccess Regeln

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • allgemeine .htaccess Regeln

    Hey Leute, ich habe diese Struktur in meinem Projekt:

    PHP-Code:
    domain.de

        
    .htaccess

        frontend

            
    -index.php
            
    -view.php

            account

                
    -index.php
                
    -view.php

        backend

            
    -class1.php
            
    -class2.php 
    Was ich erreichen will:

    1. Wenn index.php aufgerufen wird, gehe zum root '/'
    2. Zwinge 'www' in die url
    3. Lösche '.php-Endung' aus der url füge trailing slash dazu.
    4. Lösche 'frontend' aus der url

    Etwa so:

    domain.de/frontend/index.php => www.domain.de/

    domain.de/frontend/view.php => www.domain.de/view/

    domain.de/frontend/account/index.php => www.domain.de/account/

    domain.de/frontend/account/view.php => www.domain.de/account/view/
    Meine .htaccess

    PHP-Code:
    <IfModule mod_rewrite.c>
        
    # Start mod_rewrite
        
    Options +FollowSymlinks
        RewriteEngine on
        
        
    # Deny access
        
    RewriteRule ^\.htaccess$ - [F]
        
            
    # Delete 'frontend' from url
        
    RewriteRule ^$ frontend
            
    RewriteCond %{REQUEST_FILENAME} !-
        RewriteCond 
    %{REQUEST_FILENAME} !-
        RewriteRule 
    ^(.*)$ frontend/$1
        
            
    # Go to Root '/' when index.php is called
        
    RewriteCond %{THE_REQUEST} ^.*/index\.php 
        RewriteRule 
    ^(.*)index.php$ /$[R=301,L]
        
        
    RewriteBase /

        
    # Force 'www' prefix
        
    RewriteCond %{HTTP_HOST} !^$
        
    RewriteCond %{HTTP_HOST} ^([^.]+)\.([a-z]{2,4})$ [NC]
        
    RewriteCond %{HTTPS}^on(s)|
        
    RewriteRule http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

        # Remove '.php' extension
        
    RewriteCond %{THE_REQUEST} ^GET\ /[^?\s]+\.php
        RewriteRule 
    (.*)\.php$ /$1/ [L,R=301]

        
    RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond 
    %{REQUEST_FILENAME} !-d
        RewriteCond 
    %{REQUEST_URI} ^/(.+)/$
        
    RewriteCond %{DOCUMENT_ROOT}/%1.php -f
        RewriteRule 
    ^(.*)/$ $1.php [L]

        
    # Force trailing slash
        
    RewriteCond %{REQUEST_FILENAME}.php -f
        RewriteRule 
    .*[^/]$ $0/ [L,R=301]
    </
    IfModule
    Nun:
    Wenn ich 'www.domain.de' aufrufe, wird der Inhalt aus 'www.domain.de/frontend/index.php' geladen und der Ordner 'frontend' aus der url genommen. (Gut)

    Wenn ich 'www.domain.de/account/' aufrufe, wird der Inhalt aus 'www.domain.de/frontend/account/index.php' geladen und der Ordner 'frontend' aus der url genommen. (Gut)

    Aber
    Wenn ich 'www.domain.de/index.php' aufrufe, wird der Inhalt aus 'www.domain.de/frontend/index.php' geladen und der Ordner 'frontend' NICHT aus der url genommen. (http://www.domain.de/frontend/)

    Wenn ich 'www.domain.de/account/index.php' aufrufe, wird der Inhalt aus 'www.domain.de/frontend/account/index.php' geladen und der Ordner 'frontend' NICHT aus der url genommen. (http://www.mailytics.de/frontend/account/index.php/)

    Kann mir da jmd helfen?
    Gruß
Lädt...
X