- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте. Помогите разобраться с реврайтом пожалуйста.
Хочу "превратить" запрос типа : http://www.site.ru/index.php?dr=dir&id=bbb.html
в http://www.site.ru/dir/bbb.html
Для этого я прописал в файле .htaccess такие строки:
order allow,deny
allow from all
options -indexes
rewriteengine on
rewriterule ^([a-z]*)/([\D]*)/$
/index.php?direct=$1&id=$2
По идее код правильный. Но запустить эту штуку не удаётся, поэтому я грешу что не все
нужные директивы включены на сервере.
Подскажите пожалуйста, кто знает, какие дерективы должны быть включены на сервере и какие команды(модули) нужно написать.
Искал про RewriteEngine но везде одна и таже страница.
RewriteEngine on
Options +FollowSymLinks
## Если файл существует, то не изменяем URL
## и завершаем обработку
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule .* - [L]
## Если каталог существует, то не изменяем URL
## и завершаем обработку
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]
RewriteRule ^([a-z]+)/([\D]+)[/]?$ /index.php?direct=$1&id=$2
Не получается показывает тот же самый старый путь. Я тут почитал Кое что. Пробовал на генераторе.
Делов в том что я через переменную id переношу имя файла в таком виде id=aaa.html
вот она ссылка:
http://www.site.ru/tags/index.php?dr=dir&id=aaa.html
И правило RewriteRule мне пристёгивает лишний .html Получается такой вид:
http://www.site.ru/tags/dir/aaa.html.html двойной .html значит нужно или
1. Убрать из переменной в запросе ссылки эти .html
2. Убрать эти .html в самом правиле.
Значит нужно убрать .html в самом регулярном выражении.
Вот как это сделать, убрать в регулярном выражении из второй переменной 5 последних символов??
RewriteRule ^([a-z]+)/([\D]+)\.html$ /index.php?direct=$1&id=$2
Ничего не получается. Уже что только не пробовал. Выставил всё правильно.
RewriteEngine On
#RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?dr=$1&id=$2 [L]
RewriteRule ^([a-z]*)/([a-z]*)\.html$ /index.php?dr=$1&id=$2 [L,QSA]
#RewriteRule ^([a-z]+)/([\D]+)[/]?$ /index.php?direct=$1&id=$2
Перепробовал уже несколько вариантов и безрезультатно.
Всётаки мне кажетс что-то они на сервере не довключили.БЛИИИИН.
Написал в поддержку. Буду ждать до завтра врядли что мне кто-то напишет в выходной.
Ничего не получается. Уже что только не пробовал. Выставил всё правильно.
RewriteEngine On
#RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?dr=$1&id=$2 [L]
RewriteRule ^([a-z]*)/([a-z]*)\.html$ /index.php?dr=$1&id=$2 [L,QSA]
#RewriteRule ^([a-z]+)/([\D]+)[/]?$ /index.php?direct=$1&id=$2
Перепробовал уже несколько вариантов и безрезультатно.
Всётаки мне кажетс что-то они на сервере не довключили.БЛИИИИН.
Написал в поддержку. Буду ждать до завтра врядли что мне кто-то напишет в выходной.
Что-то вроде такого?
А можно узнать, что говорит сервер? Если конкретно - записи из error.log
Значит при включении правила выдаёт старый путь, как будто ничего не происходит. Уже хостеру звонил, тот сказал в лог файлах посмотреть, А я там ничего не вижу ошибок нет ответ 200. Не пойму ничего хоть ты тресни. Хостер говорит у них модревраайт включен по умолчанию.
snug, посмотрите в логе ошибок :)
Все у вас включено, ибо вы же сами сказали, что типа работает, но криво.
И правило RewriteRule мне пристёгивает лишний .html Получается такой вид:
Я с трудом понимаю, почему пристегивается лишний .html, может зацикливание происходит в правиле? Ибо больше неоткуда взяться еще одному html ;)
Попробуй так-с
RewriteRule ^/?(.+)/(.+)\.html$ /index.php?direct=$1&id=$2.html [L]
И смотрите по логам веб-сервера!!! и не надо обязательно в ошибках искать.... Ошибки может и не быть, просто правило может не срабатывать из-за несовпадения запроса с шаблоном регулярки... и это ведь не значит, что произошла именно ошибка ;)
Вот именно. Я уже скрипт переделал. Теперь у меня в переменных ссылки передаётся нормальный вид без .html то есть был такой: http://www.site.ru/index.php?dr=dir&id=bbb.html
Стал такой:
http://www.site.ru/index.php?dr=dir&id=bbb
Но переадресация не работает, а может работает но не корректно. Вот логи. Посление 5 попыток:
217.199.229.149 - - [18/Feb/2008:17:40:42 +0200] "GET /index.php HTTP/1.0" 200 683 "http://www.iwork.com.ua/index.php?dr=new2&id=1-2" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
217.199.229.149 - - [18/Feb/2008:17:41:21 +0200] "GET /index.php?dr=dir&id=bbb HTTP/1.0" 200 681 "http://www.iwork.com.ua/index.php?dr=dir&id=ccc" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
217.199.229.149 - - [18/Feb/2008:17:40:37 +0200] "GET /index.php?dr=new2 HTTP/1.0" 200 510 "http://www.iwork.com.ua/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
217.199.229.149 - - [18/Feb/2008:17:41:36 +0200] "GET /index.php?dr=dir&id=bbb HTTP/1.0" 200 681 "http://www.iwork.com.ua/index.php?dr=dir&id=ccc" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
217.199.229.149 - - [18/Feb/2008:17:41:38 +0200] "GET /index.php?dr=dir&id=bbb HTTP/1.0" 200 681 "http://www.iwork.com.ua/index.php?dr=dir&id=bbb" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
Как видоно один в один а модрерайт включён и правило включено.
Вот именно. Я уже скрипт переделал. Теперь у меня в переменных ссылки передаётся нормальный вид без .html то есть был такой: http://www.site.ru/index.php?dr=dir&id=bbb.html
Стал такой:
http://www.site.ru/index.php?dr=dir&id=bbb
Но переадресация не работает, а может работает но не корректно. Вот логи. Посление 5 попыток:
217.199.229.149 - - [18/Feb/2008:17:40:42 +0200] "GET /index.php HTTP/1.0" 200 683 "http://www.iwork.com.ua/index.php?dr=new2&id=1-2" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
217.199.229.149 - - [18/Feb/2008:17:41:21 +0200] "GET /index.php?dr=dir&id=bbb HTTP/1.0" 200 681 "http://www.iwork.com.ua/index.php?dr=dir&id=ccc" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
217.199.229.149 - - [18/Feb/2008:17:40:37 +0200] "GET /index.php?dr=new2 HTTP/1.0" 200 510 "http://www.iwork.com.ua/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
217.199.229.149 - - [18/Feb/2008:17:41:36 +0200] "GET /index.php?dr=dir&id=bbb HTTP/1.0" 200 681 "http://www.iwork.com.ua/index.php?dr=dir&id=ccc" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
217.199.229.149 - - [18/Feb/2008:17:41:38 +0200] "GET /index.php?dr=dir&id=bbb HTTP/1.0" 200 681 "http://www.iwork.com.ua/index.php?dr=dir&id=bbb" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
Как видоно один в один а модрерайт включён и правило включено.
это acceslog
выложите errorlog