Hey Leute, ich habe diese Struktur in meinem Projekt:
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:
Meine .htaccess
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ß
PHP-Code:
domain.de
.htaccess
frontend
-index.php
-view.php
account
-index.php
-view.php
backend
-class1.php
-class2.php
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/
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/
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} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ frontend/$1
# Go to Root '/' when index.php is called
RewriteCond %{THE_REQUEST} ^.*/index\.php
RewriteRule ^(.*)index.php$ /$1 [R=301,L]
RewriteBase /
# Force 'www' prefix
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} ^([^.]+)\.([a-z]{2,4})$ [NC]
RewriteCond %{HTTPS}s ^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>
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ß