Yii Framework Forum: Seo / Url - Yii Und Bindestriche - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Seo / Url - Yii Und Bindestriche Rate Topic: -----

#1 User is offline   packbot 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 1
  • Joined: 11-September 12

Posted 11 September 2012 - 06:05 AM

Hallo liebe Yii Gemeinschaft!

Habe zwei Informative Posts zu diesem Thema gefunden, und nun meine eigene Adaption vorgenommen. Will mit diesem Post erfragen ob es A) einen neuen Sachstand zu dem Thema gibt bezüglich Yii und B) ob mein Vorgehen gut ist oder ob man es auf eine andere Art und Weise besser machen könnte.

Zielsetzung: URLs SEO freundlich gestalten mit Yii, Bindestriche in der URL.

Problem: Yii unterstützt keine Bindestriche in den Action Namen, weiter sind Routen von Hand für alle betroffenen Seiten für mich keine Lösung.

Meine Lösung:

- Controller und Action Namen bekommen einen Unterstrich zwischen Wörtern.
- Bei Anfragen wandle ich dann Bindestrich mit Unterstrich.
- Die System interne URL Generierung ersetzt Unterstrich mit Bindestrich.

den CUrlManager erweitern um

<?php

class UrlManager extends CUrlManager
{

	private $hasDash = false;

	public function parseUrl($request)
	{

		// Verarbeitet die URL
		$url = parent::parseUrl($request);

		// Wenn in der Route Bindestriche vorkommen werden diese für die Action in Unterstriche umgewandelt
		$this->hasDash = substr_count($url, "-") > 0;
		return $this->hasDash ? str_replace('-', '_', $url) : $url;

	}

	public function createUrl($route,$params=array(),$ampersand='&')
	{

		if (substr_count($route,'_') > 0) {
			$route=str_replace('_','-',$route);
		}

		return parent::createUrl($route, $params, $ampersand);

	}
}

?>


Damit die Anfragen durchkommen und die betroffenen Seiten NICHT über die Unterstriche erreichbar sind habe ich noch die Config geändert auf:

'<controller:[0-9a-zA-Z\-]+>' => '<controller>',
'/<controller:[0-9a-zA-Z\-]+>/<action:[0-9a-zA-Z\-]+>'=>'<controller>/<action>',


Also soweit ich das nun getestet habe klappt das so wunderbar. Könnt ihr das bestätigen? Oder gibt es bessere Lösungsansätze?

Viele Grüße
0

#2 User is offline   CeBe 

  • Advanced Member
  • Yii
  • Group: Yii Dev Team
  • Posts: 469
  • Joined: 16-July 10
  • Location:Berlin. Germany

Posted 17 September 2012 - 05:55 AM

View Postpackbot, on 11 September 2012 - 06:05 AM, said:

Problem: Yii unterstützt keine Bindestriche in den Action Namen, weiter sind Routen von Hand für alle betroffenen Seiten für mich keine Lösung.


Verstehe grad nicht genau, was du eigentlich vor hast... Warum willst du Bindestriche in Action namen?
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users