Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.01.2015, 10:43
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Подменить URL
Собственно, такой возник вопрос.

Допустим, у меня есть некая БД статей сайта, у каждой статьи есть ID.
В URL выглядит это таким образом: site.ru/pages/?id=N, где N - ID статьи.

Но вот что мне стало интересно: можно ли как-нибудь сделать так, чтобы для каждой статьи я мог указывать директорию, в БД. Например, по мимо ID в БД ещё будет поле DIR, в котором хранится директория к статье. Чтобы выглядело таким образом: site.ru/pages/MyState/ или /site.ru/pages/MyState/Bla

Есть конечно идея организовать таким образом: site.ru/?/pages/MyState/ и парсить GET, но это не есть сахар.

P.S.: для каждой статьи создание папки с index.php не катит. Нужно чтобы всё работало от одного index.php, который находится в папке pages.

P.P.S.: подмена URL через JavaScript с помощью history.pushState тоже не катит.

Буду благодарен за любую помощь.
Ответить с цитированием
  #2 (permalink)  
Старый 22.01.2015, 10:57
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Если статья однозначно идентифицируется по id, а твой DIR - чисто для красоты, то пропиши в htaccess внутренний редирект, чтобы все запросы к pages/* редиректились в /pages/index.php.
При выводе ссылок подставляй поле из базы.

Можешь ко всему прочему сделать ЧПУ ссылки, заменив id красивым алиасом (и красиво, и полезно для SEO).
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 22.01.2015, 11:23
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

danik.js, так я и хочу сделать ЧПУ. Я просто никогда с этим не сталкивался, всё делал просто по ID.

Если редирект, то ведь в ссылке будет отображаться URL редиректа получается, site.ru/pages/index.php. А мне нужно, чтобы именно в URL был ЧПУ типо site.ru/pages/lalala/. Не создавать же для каждой стать папку с index.php, я уверен, что можно как-то сделать по человечески.

Можешь подробнее объяснить, что и как? Буду благодарен. А то я не вникаю как такое сделать.
Ответить с цитированием
  #4 (permalink)  
Старый 22.01.2015, 11:38
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Ruslan_xDD,
из .htaccess делаешь перенаправление всех запросов на роутер, который разбирает и анализирует запрашиваемый url, ну а потом лезешь в БД и выводишь что нужно.
Ответить с цитированием
  #5 (permalink)  
Старый 22.01.2015, 11:40
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Вот код моего стааарого .htaccess, мб пригодится.

AddDefaultCharset utf-8

php_flag magic_quotes_gpc off

RewriteEngine on
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^.*$ index.php [L]
Ответить с цитированием
  #6 (permalink)  
Старый 22.01.2015, 11:48
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Safort, ну а после перенаправления URL нормальный останется? Не изменится на тот, на который идёт перенаправление?
Ответить с цитированием
  #7 (permalink)  
Старый 22.01.2015, 12:09
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Ruslan_xDD
Safort, ну а после перенаправления URL нормальный останется? Не изменится на тот, на который идёт перенаправление?
Редирект ВНУТРЕННИЙ. Он только сервака касается. Клиенту пофиг че там на сервере творится.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 22.01.2015, 12:12
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Ruslan_xDD,
для пользователя будет всё так же как и раньше. Но тебе теперь не придётся по идиотски для каждого url с разными путями создавать новую папку и файл index.php в ней. Вместо этого будет один файл, в котором ты сможет обрабатывать все входящие запросы.
Да что я объясняю?) Запусти это на локалке, зайди под разными адресами и увидишь, что всё обрабатывает единый index.php.
Есть, конечно, вариант по лучше - использовать питон или ноду на бэке)
Ответить с цитированием
  #9 (permalink)  
Старый 22.01.2015, 12:52
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Safort, спасибо, сейчас по тестирую. А сам URL откуда идёт перенаправление как получить в index.php?
Ответить с цитированием
  #10 (permalink)  
Старый 22.01.2015, 13:07
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Ruslan_xDD,
глобальный $_SERVER['REQUEST_URI'] или что-то типа него.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен Java Script (из URL в форму) AntonR Работа 2 11.10.2013 12:18
Не появляются картинки через jquery lobanov_kirill_ jQuery 1 22.09.2012 20:05
Водяной знак на fancybox bobrina Общие вопросы Javascript 1 03.06.2011 21:11
переход на выбор сайт через поле ввода url (как убрать функцию "открыть все") ? rashid86 Элементы интерфейса 1 31.03.2011 14:54
Подменить url файла скачиваемого с чужого сервера. farell Javascript под браузер 2 26.01.2011 18:05