Форум программистов, компьютерный форум, киберфорум
Apache, htaccess
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
I ♥ C#
470 / 261 / 25
Регистрация: 07.05.2010
Сообщений: 567
1

Слэши в ЧПУ сводят браузер с ума

14.04.2013, 16:12. Показов 1103. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Хочу вместо урлов вида: mysite.com/g.php?id=1 иметь такие: mysite.com/gallery/1 для этого пишу в .htaccess:
Код
RewriteEngine on
RewriteRule ^gallery/(\d+)/?$ /g.php?id=$1
в итоге загружается страница без стилей, скриптов и прочего. В консоли видны ошибки, что браузер обращается по несуществующим путям:
Код
mysite.com/gallery/delog/mystyle.css
mysite.com/gallery/delog/myscripts.js
и т.д.
хотя должен обращаться сюда:
Код
mysite.com/delog/mystyle.css
mysite.com/delog/myscripts.js
Пробовал добавить в .htaccess
Код
RewriteBase /
Но это не помогло.

В общем браузер ведет себя так, как-будто текущая директория gallery, которой у меня даже нет. Что нужно добавить в .htaccess, чтобы все заработало, без вмешательства в php-файлы?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.04.2013, 16:12
Ответы с готовыми решениями:

Регекс: заменить в строке обратные слэши на два обратные слэши. Выдает ошибку
Вот пытаюсь заменить строке обратный слэш на две обратные слэши. std::replace(path.begin(),...

ЧПУ работает, но с админки перенаправляет без ЧПУ. Так и должно быть?
Здравствуйте. Версия Prectashop 1.6.0.9. Суть в том, что если я сразу перехожу по адресу...

Был сайт без ЧПУ, потом с "некрасивыми" ЧПУ
Сайт на Joostina. Сперва был без ЧПУ. Потом после индексации включили штатный ЧПУ Жустины. Там ЧПУ...

Вектор строк и слэши
vector<string> SF; while (getline(file2, line)) { try { SF.push_back(line); ...

4
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
14.04.2013, 17:01 2
в путях к стилям, js, картинкам и т.д. необходимо добавить путь от корневой директории - поставить в начале пути слэш /
1
I ♥ C#
470 / 261 / 25
Регистрация: 07.05.2010
Сообщений: 567
14.04.2013, 19:52  [ТС] 3
Как я уже говорил, мне бы хотелось обойтись без вмешательства в код. В данный момент меня интересует почему браузер думает, что gallery это папка и как сделать, чтобы он так не думал. Ну, в общем-то понятно, что в строке адреса это действительно выглядит как папка и браузер туда как бы заходит, но не понятно, почему ему это удается, несмотря на то, что папки нет. И вообще, что я, зря этот RewriteRule писал? Почему он куда-то должен "заходить"? Апач в итоге должен получить строку mysite.com/g.php?id=1 и даже не догадываться о том, что в строке адреса была какая-то gallery. В общем, как-то не понятно, как это все работает и почему так происходит. Кто-нибудь может пояснить?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
15.04.2013, 09:17 4
потому что так образовано. Единственное, что можно сделать - обойтись минимальным вмешательством в код, используя тег <base>, в нем задать путь к корневому каталогу.
Цитата Сообщение от Delog Посмотреть сообщение
Апач в итоге должен получить строку mysite.com/g.php?id=1 и даже не догадываться о том, что в строке адреса была какая-то gallery.
Он и получает. Но скрипты и стили вы подключаете не в апаче, а в php-скрипте (ну или в html, не важно)
1
I ♥ C#
470 / 261 / 25
Регистрация: 07.05.2010
Сообщений: 567
15.04.2013, 10:05  [ТС] 5
А за текущую директорию отвечает, получается не апач, а операционная система на сервере? А можно ее как-нибудь через .htaccess сменить?

Вообще все запросы из вне должны идти через апач, верно? Значит сначала приходит команда mysite.com/gallery/1 и апач меняет текущую директорию, а только потом начинает обрабатывать запрос и получает mysite.com/g.php?id=1. Получается так, или как иначе еще может просочиться этот gallery?
0
15.04.2013, 10:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.04.2013, 10:05
Помогаю со студенческими работами здесь

Удвоить слэши в строке
Есть строка с адресом типа C:\Users\Илья\... Нужно добавить к каждому слэшу еще один, т.е....

Как удвоить слэши
Задача следующая. Есть портабл-версия программы 1с 7.7 вместе с базами (пару десятков), которые...

Path.GetDirectoryName и слэши
Для каких целей в методе Path.GetDirectoryName() при возврате отсутствует обратный слэш? Ну, то...

Слэши в медиа-запросах
Здравствуйте! В одном из исследуемых в рамках обучения шаблонах, обнаружил в медиа-запросах...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru