Форум программистов, компьютерный форум, киберфорум
Наши страницы
Apache, htaccess
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
Oldgy
3 / 3 / 1
Регистрация: 10.12.2008
Сообщений: 46
1

Директива RewriteRule

11.12.2011, 01:34. Просмотров 1407. Ответов 1
Метки нет (Все метки)

Существуют ссылки вида:
http://cms.ru/index.php?page=admin_main
Хочу их изменить на:
http://cms.ru/admin/main

Написал регулярное выражение:
Bash
1
2
3
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z0-9-]+)/([a-z0-9-]+)(.*)$ index.php?page=$1_$2$3 [L,QSA]
Но оно работает не совсем корректно. Ссылки заменяются, но в некоторые пути, ведущие от "новых" ссылок, добавляется (в начало или середину) "admin/". Тем самым не работает CSS, JS и прочее, что написано в кодах CMS.

Исправил на:
Bash
1
2
3
4
RewriteCond %{HTTP_HOST} ^(cms.ru)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z0-9-]+)/([a-z0-9-]+)(.*)$ http://%1/index.php?page=$1_$2$3 [L,QSA]
Работает как надо, но ссылки в адресной строке не изменяются, а остаются с "index.php?...". Пытался дописать новые регулярные выражения - к успеху не пришёл.

Возможно ли решить задачу без использования "RewriteCond"?
Что можно сделать, чтобы всё работало как часы?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2011, 01:34
Ответы с готовыми решениями:

Директива RewriteRule и параметры в url
Можно ли использовать в .htaccess такой код RewriteEngine on RewriteRule ^list/(*)/$...

RewriteCond влияет толко для один, следушчи RewriteRule. можно как-то превишать количество RewriteRule
здраствуите, вот что интересно, сделаю mod_rewrite и для етого в .htaccess фаиле пишу ...

о RewriteRule
пытаюсь на своем сайте сделать ЧПУ , все страницы меняются 1й переменной либо page(отвечает за...

RewriteRule
Здравствуйте. Есть файл .htaccess: RewriteEngine On RewriteRule ^year/(+)/?$...

RewriteRule
Прошу помощи. Не знаю как сделать так что бы работала вот эта строка со знаком вопроса. ...

1
Oldgy
3 / 3 / 1
Регистрация: 10.12.2008
Сообщений: 46
12.12.2011, 13:57  [ТС] 2
Может быть я не так объяснил...

В адресной строке у меня не изменяются ссылки. Хотя переход по "новым" ссылкам проходит как надо.
Что нужно допилить, чтобы было по-человечески? Спасибо!

Добавлено через 1 час 40 минут
Окей. Тогда другой вопрос. Объясните, почему когда у меня первый вариант регулярок. То из кода страниц исчезают ссылки на .css, .img, .js - файлы? Пути прописаны правильно (из корня). Когда путь ошибочный, то в коде ссылки с неправильным адресом отображаются.

Добавлено через 10 часов 8 минут
Проблему решил.
Оставил первый вариант регулярных выражений. В одном из кодов CMS-ки был скрипт с ссылками до файлов. Не понятно почему, он резал "/. Пришлось придумывать так, чтобы после завершения сценария автоматически добавлялся знак "/" в начало.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2011, 13:57

RewriteRule
AddDefaultCharset utf-8 RewriteEngine on RewriteRule ^(.+)/ $1\.php RewriteRule ^(.+) $1\.php...

RewriteRule
Помогите написать RewriteRule для поиска. search.php <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML...

RewriteRule
Всем доброго дня! Покажите как на практике можно заенить URL ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru