X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Вопрос по .htaccess
Eugene_hb
Eugene_hb
Topic Starter сообщение 26.11.2009, 2:33; Ответить: Eugene_hb
Сообщение #1


0
*

Группа: User
Сообщений: 20
Регистрация: 8.12.2009
Поблагодарили: 0 раз
Репутация:   0  


Извиняюсь, что не в тему... собственную тему создать нельзя, ибо надо вначале 10 сообщений отправить... а вот флудить и писать всякую чепуху не хочется.

Вопрос такой.
В .htaccess описаны правила:
RewriteEngine On
RewriteBase /f1/
RewriteRule ^article\/([_A-Za-z0-9]+)\/([_A-Za-z0-9]+)\/([_A-Za-z0-9]+).html?$ index.php?mode=article&section=$1&group=$2&article=$3
RewriteRule ^article\/([_A-Za-z0-9]+)\/([_A-Za-z0-9]+)\/?$ index.php?mode=article&section=$1&group=$2
RewriteRule ^article\/([_A-Za-z0-9]+)\/?$ index.php?mode=article&section=$1

Если при этом еще и в заголовке страницы указать base href, то почти всё работает как надо. За исключением почему-то ссылок вида <a href="#1"> (использую их, в частности, в Coda Slider), которые преобразуются почему-то в %20%3E%3Cmeta%20http-equiv=#1...
Если base href убрать, то эти ссылки остаются такими как есть (#1), но все css, картинки...
Прописывать /img/sample.png вместо img/sample.png тоже не выход - оно должно одинаково работать и с, например, 10.xxx.xxx.xxx/mysite и mysite.host.ru (т.е. путь от корня может быть разным).
Можно, конечно, с помощью php во все страницы подставлять абсолютный путь до всех файлов (т.е. использовать конструкции вида $sitebase."/img/sample.png"), но тогда и css нужно будет через php формировать.... через одно место, мягко говоря, получится... Есть может какое-то более правильное решение?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 26.11.2009, 13:24; Ответить: ZiTosS
Сообщение #2


Ваша совесть
*******

Группа: User
Сообщений: 5148
Регистрация: 18.2.2008
Из: Нижний Новгород
Поблагодарили: 0 раз
Репутация:   8  


EugeneM,
Можно, конечно, с помощью php во все страницы подставлять абсолютный путь до всех файлов (т.е. использовать конструкции вида $sitebase."/img/sample.png"), но тогда и css нужно будет через php формировать.... через одно место, мягко говоря, получится... Есть может какое-то более правильное решение?

Вы не правы насчёт CSS. Абсолютный путь вам придётся использовать только в подключаемых файлах + пути картинок. CSS тут никоим образом не затрагивается. Всегда все файлы задаются относительно его расположения, а не относительно страницы, куда этот файл вставляется.

Почему ссылки преобразуются честно сказать не могу. Вроде как через сервер страница проходить не должна. Попробовал подобную структуру у себя, всё работает.
Вообще у вас дурацкие регулярные выражения. ? - означает 0 или 1 попаданий, / - не надо экранировать
RewriteRule ^article/([_A-Za-z0-9]+)/([_A-Za-z0-9]+)/([_A-Za-z0-9]+).html$ index.php?mode=article&section=$1&group=$2&article=$3
RewriteRule ^article/([_A-Za-z0-9]+)/([_A-Za-z0-9]+)/?$ index.php?mode=article&section=$1&group=$2
RewriteRule ^article/([_A-Za-z0-9]+)/?$ index.php?mode=article&section=$1


И зачем вы вообще используете RewriteBase /f1/? Вы хотите чтобы вместо отброшенного при преобразовании локального пути до каталога, вам возвращалось содержимое из:
/f1/index.php....

У меня все якоря работают даже с base.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Eugene_hb
Eugene_hb
Topic Starter сообщение 27.11.2009, 3:17; Ответить: Eugene_hb
Сообщение #3


0
*

Группа: User
Сообщений: 20
Регистрация: 8.12.2009
Поблагодарили: 0 раз
Репутация:   0  


ZiTosS
Благодаря
У меня все якоря работают даже с base.

стал искать причину. Нашел. Тупейшая ошибка - забыл закрывающую кавычку в base. Т.е. у меня было <base href="http://localhost/mysite/>. зря панику поднял, в общем :blink:

Вообще у вас дурацкие регулярные выражения

Возможно, Вы и правы. И экранирование слэша вовсе не обязательно.
Но вот ? после html мне нужен, т.к. хотелось бы, чтобы
/article/section/group/sample.html и
/article/section/group/sample.htm вели в одно и то же место. А без знака вопроса второй путь вроде бы как и не будет соответствовать правилу!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 27.11.2009, 17:37; Ответить: ZiTosS
Сообщение #4


Ваша совесть
*******

Группа: User
Сообщений: 5148
Регистрация: 18.2.2008
Из: Нижний Новгород
Поблагодарили: 0 раз
Репутация:   8  


EugeneM, А ну да, извиняюсь не подумал :blink:
Вот по поводу подобных регулярок:
RewriteRule ^article/...$ index.php?mode=article...

Я бы предпочёл
RewriteRule ^([A-Za-z]+)/...$ index.php?mode=$1...

А PHP-скрипт изначально получая $_GET['mode'] определяется с загружаемыми данными с помощью switch ... case. Подобная структура уменьшит количество реврайтов, да и удобнее как мне кажется. Не надо каждый раз править .htaccess, если вы, к примеру, добавили ещё какую-то ветвь исполнения

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыImageCMS Вопрос ответ.
4 olegubs 209 19.10.2020, 20:33
автор: olegubs
Открытая тема (нет новых ответов) Хочешь знать больше про PBN? Задай вопрос Евгению Шестакову
well-fed-webmaster.com
12 JOHNY 572 10.10.2020, 13:39
автор: Mansurka
Открытая тема (нет новых ответов) Небольшое вопрос по bash
0 leoworker 217 26.9.2020, 11:37
автор: leoworker
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыВопрос - платное размещение баннеров на сайте
5 WGN 390 24.8.2020, 17:58
автор: albedo
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыВопрос к специалистам по хостингу
14 Telnor 1485 10.8.2020, 12:30
автор: Telnor


 



RSS Текстовая версия Сейчас: 26.10.2020, 17:31
Дизайн