2016-04-03 6 views
0

Das ist meine url Regel lautet:.htaccess nicht funktioniert gut mit einigen charater

RewriteRule ^([a-zA-Z0-9_=-]+)/([a-zA-Z0-9_=-]+)/?$ controller/$1/$1.php?id=$2 [L] 

arbeiten gut mit: http://yii.abc.com/category/Grand-Opening aber keine Arbeit mit: http://yii.abc.com/category/I'm-sorry und

http://yii.abc.com/category/Wedding-&-ROM 

Wer kann helfen?

Antwort

0

Das liegt daran, dass Sie die Zeichen ' und & nicht in Ihrer Zeichenklasse enthalten haben.

Sie können es reparieren, indem Sie sie so einschließen.

Regex:^([a-zA-Z0-9_=-]+)\/(['&a-zA-Z0-9_=-]+)\/?$

Regex101 Demo

+0

Ich habe bereits auf Ihre Regex, ändern jetzt funktioniert gut mit: 'http: // yii.abc.com/Kategorie/Ich-es-Leid ' aber bei' http://yii.abc.com/ Kategorie/Hochzeit - & - ROM' Ich echo $ _GET ['id'] bekomme 'Wedding-' nur, kann nicht volle Zeichenfolge –

+0

'^ ([a-zA-Z0-9 _ = -] +)/([a -zA-Z0-9 _ = -] +) /? $ 'Das ist deine Regex. Meins ist anders, mein Herr. –

+0

'http://yii.abc.com/category/Wedding-&-ROM' Ich echo $ _GET ['id'] bekomme 'Hochzeit nur', kann nicht volle Zeichenfolge –

1

diese Regel Versuchen:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([\w=-]+)/([^/]+)/?$ controller/$1/$1.php?id=$2 [L,QSA,B] 

B Flagge zu verwenden ist hier der Schlüssel in der Lage ganze Wedding-&-ROM als GET Parameter zu übergeben.

+1

Das ist die echte Maszic von B :) +1 – starkeen

Verwandte Themen