- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
http://www.сайт.ru/раздел/555-слово1-слово2-слово3-110
на
http://www.сайт.ru/раздел/555-слово3-110
т.е. нужно вырезать конфигурацию -слово1-слово2 не только для этого варианта, а для всех подобных
прописываю так RewriteRule /раздел/([0-9]+)-слово1-слово2-(.*) $1-$2 [R=301]
не работает :(
Это Вы пытаетесь сделать редирект на http://www.сайт.ru/555-слово3-110, да и первый слеш не нужен
пробуйте так
или так
(если RewriteBase не задан, то перед $1 можно поставить слеш "/$1...")
К сожалению Ваши варианты не сработали, слеш на конце пробовал ставить тоже без результата...
Sinaps добавил 18.05.2011 в 14:27
Вот такой вариант выдает почти то что нужно
RewriteRule ^.*\/([0-9]+)-слово1-слово2-(.*)-([0-9]+)$ $1-$2-$3 [R=301,L]
Но ссылка становится
http://www.сайт.ru/var/www/имя пользователя/data/www/сайт.ru/510-слово3-87
Тпереь думаю как убрать /var/www/имя пользователя/data/www/сайт.ru
код редиректа рабочий, проверил на локальном сервере
сделал папку razdel, в ней папку 555-slovo3-110 и положил туда файл index.php
в корневом .htaccess сайта добавил строку
RewriteRule ^(razdel/[0-9]+)-slovo1-slovo2-(.*)$ $1-$2 [R=301,L]
и обратился по адресу
http://www.test.ru/razdel/555-slovo1-slovo2-slovo3-110
в результате был перенаправлен на
http://www.test.ru/razdel/555-slovo3-110/
Почему не работает у Вас - могут быть десятки причин
например адрес задан кирилицей (в этом случае вообще не знаю как делать редирект, не сталкивался)
или у Вас есть реальная папка "раздел" а в ней лежит свой .htaccess (тогда редирект нужно задавать там, пробовал дбавить .htaccess в папку "razdel", редирект из корневого .htaccess сразу переставал работать )
или вы добавляете правило редиректа слишком рано (в начало файла, до строки RewriteEngine On), или слишком поздно (после правила, которое уже преобразовало URL)
Если у Вас сайт корректно отображает уже преобразованный URL (вида http://www.сайт.ru/раздел/555-слово3-110 ), то можно сделать еще такую попытку: поставить код сразу после строк
RewriteEngine On
RewriteBase /
и в нем сделать назначение переменной (например RWR) при редиректе и проверку этой переменной в первых строках, чтобы выйти из .htaccess без дальнейших преобразований при повторном проходе, если преобразование уже сделано:
(не забудьте заменить русские слова в правиле их реальным значением латиницей)
===========
Добавлено позже
===========
У Вас на задано значение RewriteBase, поэтому в начало адреса добавляется физический путь на сервере
Либо добавьте строку
RewriteBase /
либо, если это неприемлимо, указывате полный путь при редиректе
RewriteRule ^.*/([0-9]+)-slovo1-slovo2-(.*)-([0-9]+)$ http://%{HTTP_HOST}/$1-$2-$3 [R=301,L]
Вот только в этом варианте у Вас теряется "razdel/", и будет
http://www.test.ru/555-slovo3-110/
RewriteEngine On
RewriteBase /
и в нем сделать назначение переменной (например RWR) при редиректе и проверку этой переменной в первых строках, чтобы выйти из .htaccess без дальнейших преобразований при повторном проходе, если преобразование уже сделано:
Большое спасибо, вот это сработало!!!