htaccess переписать заменить пробел на -

Я действительно застрял в правиле перезаписи и задаюсь вопросом, может ли кто-нибудь помочь.

Я извлекаю данные из базы данных, и, например, поле «имя», которое я использую, иногда содержит 2 слова с пробелом между ними. Я часто использую это на сайте, но в URL-адресе я хочу заменить пробел на -, поскольку я использую это поле в качестве переменной для определения записи, которую я хочу извлечь.

так что мне нужно перевернуть клубы/премьер-лига/манчестер Сити/

в

клубы/премьер-лига/манчестер-сити/

заранее спасибо

Ричард


person richard grantham    schedule 01.04.2011    source источник


Ответы (1)


Можете ли вы попробовать это правило в своем .htaccess:

RewriteEngine on
RewriteRule ^clubs/([^\s]+)\s([^\s]+)/([^\s]+)\s([^\s]+)/$ /clubs/$1-$2/$3-$4/ [R=302,NC,L]
person anubhava    schedule 01.04.2011
comment
большое спасибо за помощь. у меня проблема в том, что оба этих имени являются одной переменной каждое, поэтому премьер-лига - это одна переменная, поэтому я не думаю, что это будет работать, мой файл htaccess в данный момент использует: ##RewriteRule ^clubs/(.*)/(.*) /$ team.php?competition=$1&id=$2, который работает с URL-адресами клубов/премьер-лиги/Манчестер Сити/, но не работает, если я заменяю пробелы на - :( - person richard grantham; 02.04.2011
comment
@richard Grantham: я думал, что вся цель замены пробела дефисом заключалась в том, что вы хотите использовать его как переменную в каком-то коде. Если это не так, то мне придется спросить, какова цель такого перевода пробела в дефис в правиле перезаписи? - person anubhava; 02.04.2011
comment
извините, это довольно сложно объяснить, и я не очень хорошо справляюсь. в основном www.myurl.com/clubs/premier League/manchester City/ просматривает таблицу и возвращает лигу премьер-лиги и команду Manchester City. У меня проблема с SEO. они должны извлекать правильные данные из базы данных, возможно, переписать - правильный подход, не могли бы вы случайно посоветовать мне лучший способ добиться этого? :) - person richard grantham; 02.04.2011
comment
@richard Grantham: Спасибо, теперь все ясно. Таким образом, удалите пробелы для SEO-дружественного URL-адреса, но вам все еще нужны пробелы для вашего выбранного запроса. Я бы предложил сохранить правила перезаписи, как я предложил, и внутри вашего кода снова заменить дефисы пробелами непосредственно перед вашим SQL-запросом. Не знаю, какой язык вы используете, но все они имеют простые строковые функции для замены одного символа другим. Таким образом, у вас будут URL-адреса, совместимые с SEO, и ваши запросы также будут работать нормально. - person anubhava; 02.04.2011