Тема: Как заменить пробелы на дефис через .htaccess
Здравствуйте. Как заменить пробелы на дефис? сейчас у меня вот так показывает:
http://icefm.ru/searchmusic/Многоточие-Щемит%20в%20душе%тоска/?id=3
Сообщество читателей блога alaev.info
Не ссы! Входи или зарегистрируйся!
Форум АлаичЪ'а о SEO → Кодинг и скрипты → Как заменить пробелы на дефис через .htaccess
Стр.: 1 2
Надо войти или зарегиться
Здравствуйте. Как заменить пробелы на дефис? сейчас у меня вот так показывает:
http://icefm.ru/searchmusic/Многоточие-Щемит%20в%20душе%тоска/?id=3
Честно...не знаю
RewriteRule ^(.+)(\s|%20)(.+)$ /$1-$3 [R=301,L]
Попробуйте.
Попробуйте.
Этот вариант проканает, если заменить надо не один пробел, а несколько? Смутные сомнения есть...
Да нет, вроде работает и при трех, проверил. Можно еще так для надежности:
RewriteRule ^([^\s%20]+)(?:\s|%20)+(.*)$ /$1-$2 [R=301,L]
p.s Я в регулярках полный ноль.
p.p.s Вот протестировал: _http://otaku-team.com/привет%20тест%20два%20три.html
не хочет
не хочет
Кто не хочет? Выкладывайте содержимое .htaccess.
RewriteEngine on
RewriteRule ^(.+)(\s|%20)(.+)$ /$1-$3 [R=301,L]
Вот так должно быть.
_http://otaku-team.com/searchmusic/Многоточие Щемит в душе тоска/?id=3
_http://otaku-team.com/searchmusic/Многоточие%20Щемит%20в%20душе%20тоска/?id=3
DirectoryIndex index.php
RewriteEngine On
RewriteRule ^([^\s%20]+)(?:\s|%20)+(.*)$ /$1-$2 [R=301,L]
RewriteRule ^searchmusic/([^/]*)(/?)+$ index.php?do=vks&music=$1 [QSA,L]
RewriteRule ^audio/(.*)/(.*)/(.*).mp3?$ download.php?a=$1&b=$2&g=$3 [QSA,L]
RewriteRule ^saudio/(.*)/(.*)/(.*).mp3?$ download.php?x=$1&y=$2&g=$3 [QSA,L]
### START Определяем главное зеркало как site.ru (site.ru заменить на свой домен, например alaev.info)
RewriteCond %{HTTP_HOST} ^www\.icefm\.ru$ [NC]
RewriteRule ^(.*)$ http://icefm.ru/$1 [R=301,L]
### END Определяем главное зеркало
### START Редирект с первой страницы на основную
RewriteRule ^(.*)/page/1/$ $1/ [R=301,L]
RewriteRule ^(.*)page/1/$ $1/ [R=301,L]
### END Редирект с первой страницы на основную
RewriteBase /
RewriteRule ^(.*page/\d+/).+ /$1 [R=301,L]
# Редиректы
RewriteRule ^page/(.*)$ index.php?cstart=$1 [L]
http://icefm.ru/searchmusic/Многоточие-Щемит%20в%20душе%20тоска/?id=3
Посмотрите сами, войдите сюда http://icefm.ru/searchmusic/, наберите в поиске многоточие а там нажмите на любой трек.
Добавлено: 14-09-2012 03:30:41
понял походу, это при полном просмотре трека не хочет работать. Что делать?
В конец .htaccess поставить пробовали?
RewriteRule ^(.+)(\s|%20)(.+)$ /$1-$3 [R=301,L]
Т.е эта строчка в любом случае должна следовать за блоком:
RewriteRule ^searchmusic/([^/]*)(/?)+$ index.php?do=vks&music=$1 [QSA,L]
RewriteRule ^audio/(.*)/(.*)/(.*).mp3?$ download.php?a=$1&b=$2&g=$3 [QSA,L]
RewriteRule ^saudio/(.*)/(.*)/(.*).mp3?$ download.php?x=$1&y=$2&g=$3 [QSA,L]
Это очень важно.
Поставил в конце файла, тоже самое.
Ладно. Пойдем другой тропинкой. Давайте содержимое файла отвечающего за формирование урла трека.
Ладно. Пойдем другой тропинкой. Давайте содержимое файла отвечающего за формирование урла трека.
Тут один модульный файл. Я вам скину его содержимое на почту.
Ох и плохо же знать php на уровне "спроси у гугла" и сделай также.
Найти:
$val->artist =
preg_replace("/club[0-9]{2,15}/i","",$val->artist);
После вставить:
$val->title = preg_replace("#\%20#", "-", $val->title);
$val->artist = preg_replace("#\%20#", "-", $val->artist);
ничего не изменилось
Ладно, создаете тестовый доступ по фтп к папке где лежит файл модуля, будет минутка поэкспериментирую.
Ладно, создаете тестовый доступ по фтп к папке где лежит файл модуля, будет минутка поэкспериментирую.
Отправил
Вроде что-то получилось. Но будет работать только с новым поиском. Также нужно почистить кэш старого поиска.
Добавлено: 14-09-2012 11:05:18
http://icefm.ru/searchmusic/весна
спасибо большое, работает. Гляньте пожалуйста как будет минутка, мне нужно что бы треки которые выводятся в Последние запросы была через запятую, что бы хоть как-то их отделять, эти запросы находятся в файле zapros.txt ( в корне сайта ) и записываются через скрипт.
P.S.: Эм, когда в поиске вводишь что нибудь и где список результатов пробел не обрабатывается
Добавлено: 14-09-2012 19:55:47
А там вот где поисковые запросы эти выводятся, нельзя сделать что бы дефис пробелом был ? )))
Эм, когда в поиске вводишь что нибудь и где список результатов пробел не обрабатывается
Могу лишь наводку дать, как мне кажется нужно через js заменить пробелы тут:
onclick="window.location.href='/searchmusic/'+$('#i_search').val();return false;"
Но разбираться в этом времени как-то нет, покурите сами маны по замене текста через js.
А там вот где поисковые запросы эти выводятся, нельзя сделать что бы дефис пробелом был ? )))
В смысле чтобы ссылки были с пробелами? Тогда если вы по ним перейдете, то они тоже будут с пробелами, это же не RewriteRule, которое делает замену по факту запроса.
Большое спасибо за помощь )
Стр.: 1 2
Надо войти или зарегиться
Форум АлаичЪ'а о SEO → Кодинг и скрипты → Как заменить пробелы на дефис через .htaccess
Форум работает на PunBB