seitenreport
Avatar seitenreport
Themenersteller
Inhaber
TYPO3 Senior Developer
Content Gott (1772 Beiträge)

NEU: Seitenreport 3 (Seite 6)


robert_b
Beginner (24 Beiträge)
am 04.08.2011, 13:43 Uhr schrieb robert_b

Hallo,

ich habe eine Frage wegen "index.php und / haben denselben Inhalt"
Da schreibt Matthias:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\\ /index\\.php\\ HTTP/

RewriteRule ^index\\.php$ www.seitenreport.de [R=301,L]



was auch funktioniert für Haupt-URL

Aber wie bewirkt man im .htaccess, dass jede index.php auf die entsprechende / leitet? Wenn man mehrere Unterordner hat, dann gibt die Problematik bei jede URL-Ebene die mit / endet. Zum Beispiel:

www.ebene1/
www.ebene1/unterebene1/
www.ebene1/unterebene2/
www.ebene1/unterebene1/unterunterebene1/
...
und so weiter. Da wäre unmöglich, bei dynamischen URLs alles hädlich im .htaccess einzutragen.

Habt Ihr Lösung?


joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 04.08.2011, 14:07 Uhr schrieb joerg

Hallo Robert

Gefällt ihr dieses Konzept?

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)index\\.(php|html|htm) /$1 [L,R=301]

So ganz klar wird mir jetzt nicht was du mit dynamischen Urls meinst. Wenn ich recht vermute werden diese bei diesem Beispiel nicht umgeleitet.

Eine genauere Problemstellung wäre hilfreicher.

Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools

Raptor
Avatar Raptor
IT-Student
Content Gott (1013 Beiträge)
am 04.08.2011, 14:10 Uhr schrieb Raptor

robert_b schrieb:

Aber wie bewirkt man im .htaccess, dass jede index.php auf die entsprechende / leitet? Wenn man mehrere Unterordner hat, dann gibt die Problematik bei jede URL-Ebene die mit / endet.



Versuch mal das:

RewriteRule ^(.*/)?index\\.php$ %{HTTP_HOST}/$1 [R=301,L]


Meine Developer-Website mit den Web-Entwickler-Tools.
Meine Web-Entwicklungs-Dienstleistungen

[url="http://www.seitenreport.de/forum/beitraege/seitenreport_verlosungen/wichtig_neue_regel

robert_b
Beginner (24 Beiträge)
am 04.08.2011, 14:20 Uhr schrieb robert_b

Hallo,

danke für Hilfe; Beide Beipiele, von Jörg und Raptor leiten (leider) nur auf das Hauptverzeichnis, also auf www.ebene1/ aus meinem Beispiel, egal ob man index.php
von www.ebene1/unterebene1/ oder www.ebene1/unterebene1/unterunterebene1/ aufruft.

Es sollte aber auf dazu gehörige / leiten.
Also wenn ich www.ebene1/unterebene1/unterunterebene1/index.php eintippe, dan sollte auf www.ebene1/unterebene1/unterunterebene1/ umleiten und nicht auf www.ebene1/

Daher brauche ich einen Mechanismus, sonst ist es unreal bei tausenden URLs jedes Mal alles per Hand eintragen.

Habt Ihr vielleicht noch die eine oder andere Idee? Ich gebe zu, finde parat wirklich keine Lösung.

Gruß, Robert


Raptor
Avatar Raptor
IT-Student
Content Gott (1013 Beiträge)
am 04.08.2011, 14:24 Uhr schrieb Raptor

Okay, dann versuch mal das:

RewriteCond %{REQUEST_URI} ^(.*)/index\\.php$

RewriteRule ^ %{HTTP_HOST}%1 [R=301,L]


Meine Developer-Website mit den Web-Entwickler-Tools.
Meine Web-Entwicklungs-Dienstleistungen

[url="http://www.seitenreport.de/forum/beitraege/seitenreport_verlosungen/wichtig_neue_regel

joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 04.08.2011, 14:27 Uhr schrieb joerg

Hallo Robert

Das kann nicht sein denn der Part ist auf meiner neuen Domain seit 2 Wochen im Einsatz und funktioniert.

Ebenso müsste Florians Code funktionieren.

Hast du deinen Cache mal gelöscht?

Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools

robert_b
Beginner (24 Beiträge)
am 04.08.2011, 14:31 Uhr schrieb robert_b

Ja habe ich Cache gelöscht und so weiter. Leider funktioniert, auch mit zweitem beispiel von Raptor, nicht. Muss nicht unbedingt an den Beispiel-Scripten von Euch liegen, dies können auch die andere Einstellungen im .htaccess bei mir mitwirken.

Ok, danke für Hilfe. Gruß, Robert


Raptor
Avatar Raptor
IT-Student
Content Gott (1013 Beiträge)
am 04.08.2011, 14:33 Uhr schrieb Raptor

Die Rules müssten eigentlich funktionieren. Vielleicht liegt\'s an der RewriteBase oder in Unterverzeichnissen werden die übergeordneten .htaccess\'es nicht berücksichtigt..


Meine Developer-Website mit den Web-Entwickler-Tools.
Meine Web-Entwicklungs-Dienstleistungen

[url="http://www.seitenreport.de/forum/beitraege/seitenreport_verlosungen/wichtig_neue_regel

robert_b
Beginner (24 Beiträge)
am 04.08.2011, 15:15 Uhr schrieb robert_b

Hallo,

noch die .htaccess dazu:

<IfModule mod_rewrite.c>

# ENABLE REWRITING
RewriteEngine On
RewriteBase /

# REDIRECT *.DOMAIN.TLD -> www.DOMAIN.TLD
RewriteCond %{HTTP_HOST} ^meine-domain.com$ [NC]

RewriteRule ^(.*) www.meine-domain.com/$1 [R=301,L]



# REDIRECT SITEMAP.XML -> SITEMAP.PHP
RewriteRule ^sitemap\\.xml$ index.php?rexseo_func=googlesitemap [NC,L]

# REDIRECT ROBOTS.TXT -> ROBOTS.PHP
RewriteRule ^robots\\.txt$ index.php?rexseo_func=robots [NC,L]

# DON\'T REWRITE DIRS/FILES
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} !^redaxo/.*
RewriteCond %{REQUEST_URI} !^files/.*
RewriteCond %{REQUEST_URI} !^google(.*).html*

# REWRITE ALL OTHER REQUESTS TO INDEX.PHP
RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [L]

</IfModule>

die funktioniert sehr gut, schon seit langem, bis auf die, leider, Sache mit /index.php

Gruß, Robert


joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 04.08.2011, 16:30 Uhr schrieb joerg

Hallo Robert

Wahrscheinlich ist es die letzte Regel die das Problem verursacht.

Zwei Möglichkeiten würde ich jetzt testen.

RewriteRule ^(.*)index\\.php /$1 [R=301]

Das aber vor dem # DON\'T REWRITE DIRS/FILES einfügen.

Oder den letzte Regel in der Richtung mal umbauen.

RewriteRule ^(.*)[(index\\.php)]?$ index.php?%{QUERY_STRING} [L]

Obwohl ich mir da nicht sicher bin was ich überhaupt mache. Also absolut geraten.

Die dritte Möglichkeit wäre dann in der PHP Datei das index.php zu entfernen.


if (!preg_match(\'#^/$#\',$_SERVER[\'REQUEST_URI\']))
{
header(\'Location:http://\'.$_SERVER[\'SERVER_NAME\'].\'/\',true,301);
exit;
}


Das Beispiel gilt zwar jetzt nur für das Root Verzeichnis man könnte es aber entsprechend umbauen.

Handelt es sich bei deinem problemkind um deinen Webkatalog?

Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools



« zurück zu: Internes

Das Seitenreport Forum hat aktuell 5275 Themen und 36110 Beiträge.
Insgesamt sind 48360 Mitglieder registriert.