Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Hilfe mit RewriteRule

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
baju
PostRank 1
PostRank 1
Beiträge: 7
Registriert: 20.09.2009, 08:46

Beitrag von baju » 24.09.2009, 10:52

Habe Probleme mit einer Url Umschreibung.

RewriteRule ^index\.(php|html)$ https://www.domain.com/ [R=301,L]
RewriteCond %{HTTP_HOST} !^www.domain.com$
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]
RewriteRule ^menschen-([^/]*)\.html$ /menschen.html?id=$1 [L]

Unterseite ist mehrfach erreichbar.
zb. unter:
https://www.domian.com/menschen.html
https://www.domian.com/menschen-.html
https://www.domian.com/menschen-a.html
https://www.domian.com/menschen-ab.html

Was mache ich Falsch?

Besten Dank für eure Hilfe
Gruß baju

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

TBT
PostRank 5
PostRank 5
Beiträge: 306
Registriert: 13.02.2008, 16:11

Beitrag von TBT » 24.09.2009, 10:56

na es steht doch hier in deiner Regel

RewriteRule ^menschen-([^/]*)\.html$ /menschen.html?id=$1 [L]

was soll denn erreichbar sein?

baju
PostRank 1
PostRank 1
Beiträge: 7
Registriert: 20.09.2009, 08:46

Beitrag von baju » 24.09.2009, 11:43

Die Unterseiten werden durch ein minus Zeichen getrennt.
https://www.domian.de/menschen-afrika.html
https://www.domian.de/menschen-amerika.html
Das funktioniert auch wunderbar...

Aber leider erreicht man die Startseite Menschen auch unter folgenden Adressen:
https://www.domian.de/menschen.html
auch unter:
https://www.domian.de/menschen-.html
oder
https://www.domian.de/menschen-a.html
oder
https://www.domian.de/menschen-abc.html

Die URLs verweisen all auf die Startseite Menschen. Ist das nicht ein Problem für Google? Wird das nicht als doppelter Content gewertet?
Besten Dank
Gruß baju

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 24.09.2009, 12:50

Prüfe doch einfach auf der entsprechenden Seite ob es diese ID überhaupt gibt. Wenn ja, dann anzeigen, wenn nein, dann Fehler 404.

URL: menschen-daheim.html
Aufruf von menschen.html?id=daheim

menschen.html prüft, ob es "daheim" gibt. Wenn ja, dann Daten abfragen und anzeigen, wenn nein, dann Fehler senden.

baju
PostRank 1
PostRank 1
Beiträge: 7
Registriert: 20.09.2009, 08:46

Beitrag von baju » 24.09.2009, 13:43

Erst einmal vielen Dank für die Antworten.

Ich bin leider ein absoluter Anfänger in Mod Rewrite.

"Wenn ja, dann Daten abfragen und anzeigen, wenn nein, dann Fehler senden."

Wie mache ich das, damit ein Fehler 404 ausgegeben wird wenn es die ID nicht gibt? Habe da absolut keinen Plan.

Gruß baju

baju
PostRank 1
PostRank 1
Beiträge: 7
Registriert: 20.09.2009, 08:46

Beitrag von baju » 26.09.2009, 07:52

Ich bekomme das einfach nicht hin!

Kann mir denn keine Helfen?

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 26.09.2009, 08:01

Was macht denn die menschen.html genau? Was steht denn in der drinnen? Ohne deren Arbeitsweise zu kennen kann man auch nichts genaueres sagen. Die Antwort auf Deine Frage hast Du ja eigentlich schon, nun weißt Du nicht wie Du es umsetzen sollst. Ist verständlich, aber hier weiß das auch keiner, da keiner Dein System kennt.

baju
PostRank 1
PostRank 1
Beiträge: 7
Registriert: 20.09.2009, 08:46

Beitrag von baju » 26.09.2009, 10:28

Ich habe die Seiten mit server side includes eingebunden.

<?switch ($id){
case "asien":
include("menschen/asien.html");
break;
default:
include ("menschen/home.html");
}?>

Der Aufruf erfolgt dann über:

<ul id="subnavlist">
<li id="subactive"><a href="menschen-home.html" id="subcurrent">home</a></li>
<li><a href="menschen-asien.html">Asien</a></li>
</ul>

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 26.09.2009, 10:47

Ja ok, da steht aber auch drinnen, dass wenn es kein Übereinstimmung mit dem "case" gibt, dann eben die home.html aufgerufen wird (default-Bereich).

Also "asien" ruft menschen/asien.html auf
alles andere, was nicht per Case abgedeckt ist, wird über default abgewickelt.

Du hast also so wie ich es sehe eine menschen.html. Die soll also home.html aufrufen
Dann hast Du noch "Ländernamen" die die jeweilige Datei einbinden.

Daher musst Du nun unterscheiden, ob die "$id" mit übergeben wurde oder nicht.
Entweder etwas in der Richtung

Code: Alles auswählen

<?
if&#40;isset&#40;$_GET&#91;'id'&#93;&#41;&#41;
&#123;
	switch &#40;$id&#41;&#123;
	case "asien"&#58;
	include&#40;"menschen/asien.html"&#41;;
	break;
	default&#58;
   header &#40;'HTTP/1.0 404 Not Found'&#41;;
	include &#40;"fehler.html"&#41;;
	&#125;
&#125;
else
&#123;
	include&#40;"menschen/home.html"&#41;;
&#125;
?>
oder Du setzte für das "home" in der htaccess auch einen Wert.

Code: Alles auswählen

RewriteRule ^menschen\.html$ /menschen.html?id=home &#91;L&#93;
und prüfst danach dann auch wieder im Switch

Code: Alles auswählen

<?
switch &#40;$id&#41;&#123;
case "home"&#58;
include&#40;"menschen/home.html"&#41;;
break;
case "asien"&#58;
include&#40;"menschen/asien.html"&#41;;
break;
default&#58;
header &#40;'HTTP/1.0 404 Not Found'&#41;;
include &#40;"fehler.html"&#41;;
&#125;


?>
oder gehst einen ganz anderen Weg. Jedenfalls darf Dein "default" nicht das "home" sein, sonst wird das immer aufgerufen, egal ob es stimmt oder nicht.

Die Fehler.html ist dann Deine Fehlerseite, oder auch eine andere wenn es schon eine gibt. Das Header() kann auch in die Fehlerseite mit rein und muss nicht in den Switch. Es sendet auch nur den entsprechenden 404-Header.

Gegenfrage:
Gibt es die URL menschen.html überhaupt oder heißt die menschen-home.html? Wenn es menschen.html nicht gibt, dann kannst Du bei der zweiten Version den zusätzlichen Eintrag in der htaccess weglassen.

baju
PostRank 1
PostRank 1
Beiträge: 7
Registriert: 20.09.2009, 08:46

Beitrag von baju » 26.09.2009, 17:13

Sie heißt menschen-home.html. Habe den Eintrag in der htaccess weggelassen und alles funktioniert bestens.

Danke Dir vielmals! :D

Gruß baju

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag