Добрый вечер!
Не знаю где отдельная тема по .htaccess, но в принципе у меня вопрос и по РНР также.
Не могу составить правильно .htaccess файл.
Идея такая: index.php получает в include_page страницу, которую нужно инклудить.
Вот скрипт в .htaccess файле:
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule ^(.*).html$ /index.php?include_page=$1 [L,QSA]
Этот код работает прекрасно. Запросы вида
http://site.com/page.html (при условии, что есть файл page.php) отрабатывают успешно.
Код index.php:
if(file_exists($rootpath.$include_page.'.php'))
require_once($rootpath.$include_page.'.php');
else
require_once ($rootpath.'404.php');
Все работает, но! Захотелось мне теперь, чтобы запросы вида:
http://site.com/filter-arg0-ar ... .html
отрабатывали, скажем, в файле filter.php с параметрами:
arg0 = param1
arg1 = param2
arg2 = param3
Ничего пока не вышло.
Рассчитываю на Вашу помощь, так как сам еще не очень разбираюсь в таких делах.
Заранее спасибо!
К сообщению выше ответ (может кому понадобится):
В .htaccess прописываем следующее:
RewriteRule ^filter-(.*)-(.*)-(.*)\.html$ /index.php?include_page=filter&arg0=$1&arg1=$2&arg2=$3 [L,QSA]
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^(.*)\.html$ /index.php?include_page=$1 [L,QSA]
нелогично. отправляй все на точку входа (index.php в твоем случае) и разбирай на составляющие силами скрипта, а то так и будешь дописывать правило за правилом
ramzes, в моей ситуации это как раз то, что мне нужно.
Естественно у меня немного другая ситуация, чем описана в вопросе. Что-то типа этого:
RewriteRule ^(.*)/(.*)/(.*)/$ /index.php?include_page=filter&var1=$1&var2=$2&var3=$3 [L,QSA]
RewriteRule ^(.*)/(.*)/$ /index.php?include_page=filter&var1=$1&var2=$2 [L,QSA]
RewriteRule ^(1st|2nd|3rd|4th)/$ /index.php?include_page=filter&var1=$1 [L,QSA]
получается имя отрабатываемого скрипта вообще не видно, а вместо него в качестве папки первый из 4-х возможных значений 1-го параметра. И т.д. по существованию параметров.
А ниже уже правило для роутера.
я же говорю, не логично
###############################################
RewriteRule ^(.*)$ /index.php?request=$1 [L,QSA]
################################################
$separator = '/'; // & или любой др. на вкус
$params = (isset($_GET['request']
? explode($separator, $_GET['request'])
: array(
0 => 'index'
)
);
print_r($params);
принцип простейшего роутера
Тут где синтаксис ошибки ?
UPDATE `u875567778_m` .`forum` SET `img` = '1.png' WHERE `forum`. `id` =1;
UPDATE `u875567778_m` .`forum` SET `img` = '2.png' WHERE `forum`. `id` =2;
Ребят как избежать при джойне чтобы у скрешиваемых таблиц не пересекались айди,а то вместо айди пользователя мне выьивает другое айди.
Только указывать ячейки вручную да*
Andrei4ik93, пробуй джоинить в разной последовательности при совпадающих именах полей, то есть
select * from users join forum
поле ид будет из таблицы форум
select * from forum join users
тут будет поле ид из юзеров
так же можно применять правый левый джоин, там вообще много типов объединения
если нужны оба ида, то можно их за алиасить через AS , то есть дать определенному полю новое имя
select users.id as uid, forum.id as fid from users join forum
# Koenig (09.08.2015 / 12:09)
Andrei4ik93, пробуй джоинить в разной последовательности при совпадающих именах полей, то есть
select * from users join forum
поле ид будет из таблицы форум
select * from forum join users
тут бу
точно. алиасы вот что мне надо было