- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Спасибо, но уже помчался на php это делать. На деле оказывается проще, чем при планировании. Последний вопрос, и моя благодарность выходит за рамки границ.
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{HTTP_HOST} www.joysea\.ru
RewriteRule ^(.*)$ http://joysea.ru/$1 [R=permanent,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://joysea.ru/ [R=301,L]
AddDefaultCharset UTF-8
RewriteRule ^([-a-zA-Z0-9_]+)/$ place.php?placesef=$1&place_id=(.) [QSA,L]
RewriteRule ^([-a-zA-Z0-9_]+)/photos.html$ place.php?placesef=$1&place_id=(.)&photo [QSA,L]
RewriteRule ^([-a-zA-Z0-9_]+)/karta.html$ place.php?placesef=$1&place_id=(.)&map [QSA,L]
RewriteRule ^([-a-zA-Z0-9_]+)/pogoda.html$ place.php?placesef=$1&place_id=(.)&pogoda [QSA,L]
RewriteRule ^([-a-zA-Z0-9_]+)/svodka.html$ place.php?placesef=$1&place_id=(.)&svodka [QSA,L]
RewriteRule ^([-a-zA-Z0-9_]+)/video.html$ place.php?placesef=$1&place_id=(.)&video [QSA,L]
RewriteRule ^([-a-zA-Z0-9_]+)/([-a-zA-Z0-9_]+).html$ place.php?placesef=$1&place_id=(.)&art=(.)&artsef=$2 [QSA,L]
RewriteRule ^([-a-zA-Z0-9_]+)/([-a-zA-Z0-9_]+)/$ place.php?placesef=$1&place_id=(.)&hotels=(.)&hotcatsef=$2 [QSA,L]
Каталоги не открываются. Насколько понимаю, отсутствует правило проверять на физическое нахождение файла/директории.
Объясните мне дураку зачем в
???и какие именно каталоги не открываются?
Объясните мне дураку зачем в
Низачем. Автор либо сам не понимает зачем (хотя ему об этом говорили), либо это он таким интересным способом пытается объявить эти переменные в коде. Но вопрос, зачем? Значение абсолютно никакое, с таким же успехом можно просто тупо их убрать. Имхо, автор явно не хочет слушать то, что выходит за рамки его понимания.
RewriteRule ^([-a-zA-Z0-9_]+)/photos.html$ place.php?placesef=$1&place_id=(.)&photo [QSA,L]
RewriteRule ^([-a-zA-Z0-9_]+)/karta.html$ place.php?placesef=$1&place_id=(.)&map [QSA,L]
RewriteRule ^([-a-zA-Z0-9_]+)/pogoda.html$ place.php?placesef=$1&place_id=(.)&pogoda [QSA,L]
RewriteRule ^([-a-zA-Z0-9_]+)/svodka.html$ place.php?placesef=$1&place_id=(.)&svodka [QSA,L]
RewriteRule ^([-a-zA-Z0-9_]+)/video.html$ place.php?placesef=$1&place_id=(.)&video [QSA,L]
Сам удивляюсь, что до сих пор не понял. Стоило бы изучить эту тему, но фронт работы толкает в гриву.
Логика моих действий:
Во всех путях обязательно присутствуют две переменные: placesef и place_id. По последней из них идет запрос к базе SELECT * FROM ... WHERE id='$place_id'.
Т.к. начало урла у всех одинаково, я добавлял остальные переменные, иначе как апач поймет, что куда мне надо преобразовывать.
RewriteRule ^([-a-zA-Z0-9_]+)/([-a-zA-Z0-9_]+)/$ place.php?placesef=$1&place_id=(.)&hotels=(.)&hotcatsef=$2 [QSA,L]
Если бы я написал RewriteRule ^([-a-zA-Z0-9_]+)/([-a-zA-Z0-9_]+).html$ place.php?placesef=$1&place_id=$3&art=$4&artsef=$2 [QSA,L] не односиськой, а $номер, это значение появилось бы в урле? Экспериментировал, пока не ушло лишнее из урла.
Т.е. я могу запрос вида
и лишнее уйдет с темже успехом?
---------- Добавлено 22.12.2014 в 12:30 ----------
Статичные папки, например http://joysea.ru/css/
что вы привязались к этому ИД place_id? вы сами его выкинули из УРЛа, все нет его...
ваш апачь не экстрасенс, если вы ему этот ИЛД в урле не даете он его никак не выдаст в скрипт))
RewriteRule ^([-a-zA-Z0-9_]+)/$ place.php?placesef=$1 [QSA,L]
RewriteRule ^([-a-zA-Z0-9_]+)/photos.html$ place.php?placesef=$1&photo [QSA,L]
placesef - это новый ИД, по нему в скрипте находите данные нужные и выводите... или запросом по его значению находите place_id и дальше с ним работаете. хотя смысл? проще запросы поправить, повторяю placesef это новый ключ, в БД на него надо повесить индекс, и он должен быть уникальным в таблице.
тоже само для остальных таблиц
RewriteRule ^([-a-zA-Z0-9_]+)/([-a-zA-Z0-9_]+)/$ place.php?placesef=$1&hotcatsef=$2 [QSA,L]
artsef - ключь статей, hotcatsef - ключь отелей, или что там они означают?
с этой строкой то же непонятно, что может означать &photo ?
как вы эту переменную вообще проверяете? в GET запросе передаются данные вида переменная=значение переменной...
по папкам - зачем вам открывать http://joysea.ru/css/ ? вы открываете файл http://joysea.ru/css/style.css он никак под ваши правила не попадает, или не должен.
если нужно какие-то папки исключить из реврайта добавьте вверху условие
Т.е. я могу запрос вида
Перечитайте еще раз все вышесказанное мной и другими пользователями, а то у меня такое ощущение что вы вообще читаете через слово каждого четвертого сообщения. И сделайте это минимум раз пять.
сократить до
До чего можно сократить, можно увидеть в примере выше.
По последней из них идет запрос к базе SELECT * FROM ... WHERE id='$place_id'.
У вас $place_id = '(.)' какой тут еще может быть запрос? С таким значением, или с ним или без него результат будет тот же. Его следует выкинуть из реврайта, вам уже десятый раз об этом говорят.
Если бы я написал RewriteRule ^([-a-zA-Z0-9_]+)/([-a-zA-Z0-9_]+).html$ place.php?placesef=$1&place_id=$3&art=$4&artsef=$2 [QSA,L] не односиськой, а $номер, это значение появилось бы в урле? Экспериментировал, пока не ушло лишнее из урла.
Из какого урла? Для начала нужно понять, что есть адрес запроса и есть адрес реврайта. В адресе запроса (первая часть реврайта) ничего не появляется кроме того, что запросил пользователь, адрес реврайта - это собственно туда, куда нужно перенаправить запрос. И лишнее там ничего не может появляться, если эти данные небыли переданы пользователем. Включите уже мозг, и поймите наконец, что если значение place_id отсутствует в адресе запроса, значит и передавать дальше уже нечего.
$n - это ссылка на подмаску в регулярном выражении. Откуда здесь $3 и $4 если у вас только две группы?
Ур может быть разным, place.php?place_id=2&photo или place.php?place_id=2&map или place.php?place_id=2&video
а дальше
if (isset($_GET[photo])) { ... }
else if (isset($_GET[map])) { ... }
else {...}
}
Теперь всё встало на места, спасибо всем.
if (isset($_GET[place_id])) {
place_id надо бы в скобках заключить..
Из реврайта place_id убрать.
В коде $place_id = $_GET['place_id'] ? (int) $_GET['place_id'] : 0;
$_GET[(place_id)] ??
в кавычки) $_GET['place_id'] и во всех остальных переменных