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

Url/Mode Rewrite - Kompatibilität nach Umstellung

CGollhardt

Mitglied
Hallo, ich wusste jetzt nicht genau in welches Forum das passt. Wenn falsch, bitte verschieben.

Angenommen ich habe folgende Url:

/forum/neuer-server-tm2-stadium.htm?threadid=360

Nun möchte ich aber das Format wechseln zu

/42/thread-360/neuer-server-tm2-stadium

wobei 42 forum ersetzt und thread threadid ersetzt.

Wie würde ich dies am besten lösen, damit alte Links weiterhin aufrufbar sind? Für Google und Co werde ich wahrscheinlich einen 301 benötigen.

Ich habe den IIS und PHP.

Sollte ich dies in der web.config/.htaccess einarbeiten oder vielleicht im PHP Code oder auf einem anderen Wege?

Was mir hier besonders wichtig ist: Performance.
 
Zuletzt bearbeitet:
Werbung:
Wenn Du einen IIS hast, kannst Du keine .htaccess-Datei verwenden. Die ist eine Eigenschaft des Apache-Webservers. Du müsstest dich eher in einem IIS-Forum nach den Möglichkeiten hierfür erkundigen. Es müsste meines Wissens möglich sein, aber ich weiß leider nicht wie da ich keinen IIS als Webserver-Dienst verwende.

Und aus SEO-Sicht (da Du hier gepostet hast) wäre ein 301 für alle Aufrufe die zur neuen URL führen korrekt - nicht nur für Google & Co.
 
Hallo Threadi, vielen Dank für deine schnelle Antwort.

.htaccess und web.config sind in Hinsicht UrlRewrite/ModRewrite fast identisch. Ich habe die .htaccess nur für die User (Mehrzahl) genommen, da diese wahrscheinlich den Apache im Einsatz haben. Die Möglichkeiten sind allerdings die selben.

Die Frage ist, was ist das beste, was man machen kann. Ist eine Webserver-Seitige Lösung die schnellste Möglichkeit? Ist PHP schneller? Ist irgendwas anderes schneller? Das Problem ist, dass ich diese Abhängigkeit wahrscheinlicherweise nicht für 1-3 Monate drinn habe, sondern für die nächsten 10 Jahre.

Wäre es vielleicht Sinnvoller, irgendwann ein, "Ups, die Seite konnte nicht gefunden werden, aber hier haben sie eine Suchfunktion" anzubieten? Wie macht ihr das, bei so einer Umstellung? Die Frage ist weniger Technisch gesehen (Wenns da Fragen gibt, melde ich mich nochmal) sondern eher Organisatorisch/Theroritisch->Performance.

//Edit: Zur Klarifizierung:
Die erste URL ist bereits überschrieben:

Code:
				<rule name="MainDesign">
					<match url="(.*)/(.*).htm$" />
					<conditions>
						<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
					</conditions>
					<action type="Rewrite" url="/design.php?seite={R:1}&amp;rewritten=true" />
				</rule>

Such-Regex:
(.*)/(.*).htm$

Ersetzung durch Regex:
/design.php?seite={R:1}&amp;rewritten=true

Allerdings müsste ich jetzt für die 2. Url den Such-Regex für bestimmten Annahmen bei {R:1} übernehmen, wie:
forum = 42,
guestbook = 43,
.
.
.
.
news = 999;

Sogar soweit, dass forum/xxxxx?threadid=xxxxx oder forum/xxxxx?editthreadid=xxxxx oder forum/xxxxx?editpost=xxxxx oder ... und diverse andere Geschichten extra behandelt werden müssen.

x bei {R:x} steht für den gefundenen Index im IIS analog zu Apache's $x

Das letzte Projekt war leider mein Anfang mit Serverseitigen Rewrite, aber ist so ausgeufert (von der Menge), dass ich unbedingt die "Altlasten" übernehmen muss.

Warum wird Forum zu 42?

Forum ist ein Modul in meinem System, mit einer bestimmten id: 42 (was natürlich jede andere Zahl auch sein kann)
Außerdem ist das Forum nur ein Beispiel. Genauso kann es das Modul Gästebuch (43), Youtubevideo (44), ..., News(999) etc. geben

Was ist ein "damiliges Modul"

Damals wurden alle Module hardcoded erstellt. Es war die Annahme, dass das Gästebuch über ?seite=gastbuch erreichbar war.

Wo ist der Unterschied

Im neuen System, gibt es nur ein Modulidentifikator. Theoritisch kann 999x das Modul Gästebuch (Besseres Beispiel "Text") vorhanden sein. Module wie "Text" waren damals Hardcoded und konnten nicht in die Datenbank eingepflegt werden.

Ich hoffe ich konnte jetzt eingiges verständlicher machen. Worauf es mir ankommt: Preformance. Die Umsetzugen bekomme ich (denke ich) hin.
 
Zuletzt bearbeitet:
Werbung:
Zurück
Oben