2014-09-16 3 views
1

Я следующий URL (есть несколько, как это):Переопределение URL с одной неразрывный пробел в .htaccess

mysite.co.uk/productdetails/408/20/Casio%C2%A0CTK1100/ 

, и я хочу переписать его:

mysite.co.uk/Casio-CTK1100-in-Black/393 

проблема этот смешной% C2% A0 теперь у меня есть другие ссылки с несколькими пробелами в там, и они переписываются следующим образом:

# take care of %C2%A0 
RewriteRule ^(.+)\xc2\xa0(.+)$ $1-$2 [L,NE] 

# executes **repeatedly** as long as there are more than 1 spaces in URI 
RewriteRule "^(\S*) +(\S* .*)$" $1-$2 [L,NE] 
RewriteRule "^productdetails/617/6/(\S*) (\S*?)/?$" /$1-$2/302 [L,R=302,NE] (is just and example of a url with more than 1 space) 

Это работает префект, однако, когда у url есть только одно место в нем, как показано выше, это не сработает. Мне нужно будет сохранить вышеуказанное правило в моем файле .htaccess, чтобы иметь возможность переписывать URL-адреса с несколькими местами.

Любая помощь приветствуется

ответ

0

Вы можете иметь это так:

# take care of %C2%A0 
RewriteRule ^(.+)\xc2\xa0(.+)$ $1-$2 [L,NE] 

# executes **repeatedly** as long as there are more than 1 spaces in URI 
RewriteRule "^(\S*) +(\S* .*)$" $1-$2 [L,NE] 

RewriteRule "^productdetails/617/6/(\S*) (\S*?)/?$" /$1-$2/302 [L,R=302,NE] 

RewriteRule "^productdetails/408/20/(\S+?)/?$" /$1-in-Black/393 [L,R=302,NE] 
+0

Спасибо за Ваш ответ, это не совсем работает он ищет/Casio-CTK1100/-в-черный/393 вместо of/Casio-CTK1100-in-Black/393 по какой-то причине он поставил a/in после CTK1100 – Ria

+0

ok попробуйте обновить правило сейчас. – anubhava

+0

Отлично, что сработало блестяще. Еще раз спасибо – Ria