• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Suchmaschinenfreundliche URLs

mod_rewrite funktioniert, weil ich noch eine Umleitung habe
nämlich von meine-domain.de auf www.meine-domain.de

So schaut mein Versuch aus

RewriteBase /
RewriteRule ^(.+)/(.+)/([0-9]+)$ index.php?content=$1&date=$2&seite=$3

Das Datum muss so 05.06.2010 ausschauen
 
Da dürften die Punkte dran Schuld sein. Trenn es doch noch weiter auf:

Code:
RewriteRule ^(.+)/(.+)\.(.+)\.(.+)/([0-9]+)$ index.php?content=$1&date=$2.$3.$4&seite=$5
 
Da dürften die Punkte dran Schuld sein. Trenn es doch noch weiter auf:

Code:
RewriteRule ^(.+)/(.+)\.(.+)\.(.+)/([0-9]+)$ index.php?content=$1&date=$2.$3.$4&seite=$5[/QUOTE]
 
Geht nicht
Ist dein Code so richtig, dass einmal das Trennzeichen \ nach links und dann nach rechts / zeigt?
 
Mit \. maskiert man die Punkte. Dadurch wollte ich in meinem Beispiel-Code erreichen, dass die Punkte nicht das Problem in deinem Code sind.
 
Ohne das RewriteBase (dürfte an meiner Ordnerstruktur liegen) funktioniert diese Anweisung:

Code:
RewriteRule ^(.+)/(.+)/([0-9]+)$ index.php?content=$1&date=$2&seite=$3

Es ist möglich, dass dein Browser-Cache das Testen verfälscht. (Das ist kein Witz. Ich weiß, dass das unlogisch ist, aber zumindest der Firefox *cacht* *sowas*.) Wenn du den Firefox benutzt, deaktiviere mit der "Web Developer Toolbar"-Extension den Cache ("Disable Cache") und versuche es erneut.
 
Ich glaub jetzt weiss ich woran es liegt
Wenn ich die RewriteRule eingeb,dann wird zwar die URL korrekt aufgerufen,
aber die CSS-Datei der Webseite ist nicht mehr erreichbar,
weil die Seite mit der RewriteRule völlig verschoben und ohne Background
erscheint
Kann es sein,dass die CSS-Datei mit der RewriteRule nicht mehr erreichbar ist ??
Code:
RewriteRule ^(.+)/(.+)/([0-9]+)$ index.php?content=$1&date=$2&seite=$3

Code:
<link href="style.css" rel="stylesheet" type="text/css" title="stylesheet1" />
 
Das Problem ist,dass alle Bilder und die CSS-Datei nicht angezeigt werden
Ich hab den Pfad zur CSS-Datei leicht verändert, so gehts ...
Code:
<link href="/style.css" rel="stylesheet" type="text/css" title="stylesheet1" />
 
Was passiert, wenn du die CSS Datei im Browser direkt aufrufst?
 
Dann stimmt was mit deiner HTML Ausgabe nicht.

EDIT Nachtrag: "funktioniert" heißt, der CSS Code wird ausgegegeben?
 
Dann stimmt was mit deiner HTML Ausgabe nicht.

EDIT Nachtrag: "funktioniert" heißt, der CSS Code wird ausgegegeben?

Ja,der Code wird ausgegeben

Ich hab den Pfad zur CSS leicht verändert
weil die CSS mit RewriteRule nicht funktioniert hat
Code:
vorher <link href="style.css" rel="stylesheet" type="text/css" title="stylesheet1" />
nachher <link href="/style.css" rel="stylesheet" type="text/css" title="stylesheet1" />
 
Du widersprichst dir. Wenn du deine Seite aufrufst mit dem HTML Code und der Aufruf im Browser http://example.org/style.css den CSS Code ausgibt, dann muss es funtkionieren oder du machst irgendetwas falsch, was wir aber nicht sehen können.

Ich widersprech mich doch nicht
Mit dem RewriteRule wird an die URL index.php?content=.....
angehängt,daher hat es nicht funktioniert und die CSS-Datei wurde nicht mehr gefunden

 
Hallo Tomm,

ich hätte eine bei weitem elegantere Lösung für Dich. Verwende das Zend Framework. Wenn Du das Model, View, Controller Prinzip einhaltest bietet es Dir ungeahnte Möglichkeiten. Im Endeffekt ist es eine enorme Erleichterung und die Verwaltung ist sehr elegant gelöst.

Die URL bekommt der klassenname des Controllers und die der Funktion die ausgeführt wird.

Als Beispiel:

PHP:
class SettingsController extends Zend_Controller_Action {

    public function showAction() {

        $session    = new Zend_Session_Namespace();
        $username   = $session->username;
        $validator  = new Validator_getUserInformationValidator();
        $Userdata   = $validator->GetUserData($username);
        $renderer   = new View_SettingsRenderer(Zend_Layout::getMvcInstance()->getView() );

        $this->getResponse()->setBody( $renderer->renderSettingPage($Userdata) );
    }
}
Im View Skript müsste man den Link so angeben

PHP:
<form enctype="multipart/form-data" action="<?php echo $this->escape(DOMAIN);?>/Settings/show" method="post">
Der Name der URL heisst in diesem Beispiel also
HTML:
http://{URL}/Settings/show
Selbstverständlich siehst Du in diesem Beispiel nicht alles was es gibt *grins*.
Aber es dient nur der Demonstration des Potenzials.

Ich würde Dir jedenfalls empfehlen Deine Website mit dem Zendframework zu entwickeln.
Sehr gute Beispiele und Erklärungen findest Du auf der offiziellen Homepage
Zend Framework: Documentation: Zend Framework Manual
 
Ich widersprech mich doch nicht
Mit dem RewriteRule wird an die URL index.php?content=.....
angehängt,daher hat es nicht funktioniert und die CSS-Datei wurde nicht mehr gefunden
Wenn das passiert, dann wird aber doch nicht der CSS Code ausgegeben? Wie du weiter oben sagst.
 
Zurück
Oben