Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: URL: Подмена/Симуляция каталога

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
MrBlack
Отправлено: 20 Января, 2009 - 11:05:58
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)




Может, конечно, тему назвал некорректно, или уже была подобная, извините, просто нужна помощь Улыбка

В общем суть такая.
Каким образом можно изменить URL страницы.
Например, ее адрес такой
http://localhost/index.php?t=about
а мне надо что бы было
http://localhost/about/
т.е. как бы симулировать подкаталог.

Можно ли это сделать? и если да,то как? Подмигивание
 
 Top
Гость
Отправлено: 20 Января, 2009 - 11:08:29
Post Id


УДАЛЁН










можно, есть библиотечка такая

но я сейчас не вспомню название...

Да и зачем так делать... лишняя возьня
 
 Top
Stierus Супермодератор
Отправлено: 20 Января, 2009 - 11:09:18
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Как я это делаю:

в .htaccess :

CODE (text):
скопировать код в буфер обмена
  1. RewriteEngine On            
  2. Options +FollowSymlinks
  3. RewriteBase /
  4.  
  5. RewriteCond    %{REQUEST_FILENAME}    !-f
  6. RewriteCond    %{REQUEST_FILENAME}    !-d
  7. RewriteRule ^index\.html?$ index.php [N]
  8.  
  9. RewriteCond    %{REQUEST_FILENAME}    !-f
  10. RewriteCond    %{REQUEST_FILENAME}    !-d
  11. RewriteRule ^(.*) index.php


Внутри index.php разбираю переменную $_SERVER["REQUEST_URI"] (у меня специально класс написан для этого)

тестовый index.php :

CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. $url = explode("/",$_SERVER["REQUEST_URI"]);
  4. echo "<pre>";
  5. var_export($url);
  6. echo "</pre>";
  7. ?>
  8.  

(Отредактировано автором: 20 Января, 2009 - 11:11:30)

 
My status
 Top
MrBlack
Отправлено: 20 Января, 2009 - 11:22:21
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)




Stierus пишет:
Внутри index.php разбираю переменную $_SERVER["REQUEST_URI"] (у меня специально класс написан для этого)

а можно поподробнее??
 
 Top
Stierus Супермодератор
Отправлено: 20 Января, 2009 - 11:30:38
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




всё написано
 
My status
 Top
MrBlack
Отправлено: 20 Января, 2009 - 11:57:24
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)




просто странно.. создал htaccess и в индкс вставил код, но после входа на http://localhost/about/ полетело много ошибок ругается в основном на каталог queries, у меня такого в природе не было.
Для этого не нужны никакие библиотеки установлены?!
 
 Top
Stierus Супермодератор
Отправлено: 20 Января, 2009 - 12:00:55
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Цитата:
создал htaccess
Только не "htaccess", а ".htaccess"
Цитата:
в индкс вставил код
Который я выложил?
Цитата:
полетело много ошибок ругается в основном на каталог queries
А нет ли у вас папки "аbout" ?
Цитата:
Для этого не нужны никакие библиотеки установлены?!
В апаче должен быть mod_rewrite включен
 
My status
 Top
CodeWarrior
Отправлено: 20 Января, 2009 - 12:35:52
Post Id



Частый гость


Покинул форум
Сообщений всего: 157
Дата рег-ции: Янв. 2009  
Откуда: Албания


Помог: 0 раз(а)




Krist_ALL пишет:
Да и зачем так делать... лишняя возьня

Это в простонародье ( Радость ) именуется как ЧПУ... Например, эту возможность использует всем известная CMS. ИМХО, это красиво...
 
 Top
MrBlack
Отправлено: 20 Января, 2009 - 12:56:18
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)




Stierus, настройка апача правильная и я вкурсе как htaccess пишется Подмигивание
Спасибо за помощь, но что-то не работает..видимо,я недопонял...

CodeWarrior, а где можно узнать подробнее об этом?! Закатив глазки
 
 Top
Stierus Супермодератор
Отправлено: 20 Января, 2009 - 13:07:21
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Давайте отделять мух от котлет :
Цитата:
после входа на http://localhost/about/ полетело много ошибок ругается в основном на каталог queries

Нам надо понять, идёт ли перенаправление или нет, а потом уже, в каком скрипте и почему возникают ошибки.

В КОРНЕВОЙ папке создайте index.php (нормальный его адрес что бы был http://localhost/index.php) с содержанием:
CODE (text):
скопировать код в буфер обмена
  1. <?php
  2. $url = explode("/",$_SERVER["REQUEST_URI"]);
  3. echo "<pre>";
  4. var_export($url);
  5. echo "</pre>";
  6. ?>
  7.  

, в той же папке создайте .htaccess, который я выложил,
введите в строке браузера http://localhost/sdfgs/asdg/asdgs/asdgasd/ и напишите, что выведется ?
 
My status
 Top
CodeWarrior
Отправлено: 20 Января, 2009 - 13:24:04
Post Id



Частый гость


Покинул форум
Сообщений всего: 157
Дата рег-ции: Янв. 2009  
Откуда: Албания


Помог: 0 раз(а)




MrBlack пишет:
CodeWarrior, а где можно узнать подробнее об этом?!

Про ЧПУ? Вот, появилась статья от Stierus. Думаю она получит свое развитие, т.к. это актуально.
Вот статья: Мини-статья о ЧПУ
 
 Top
Гость
Отправлено: 20 Января, 2009 - 14:43:57
Post Id


УДАЛЁН










Да статья неплохая но с чего автор решил что такая конструкция заработает: <?php header("http/1.0 200 Ok"); ?>
Это вам не NPH-скрипты Тут надо использовать всевдо-поле Status
Те надо делать так <?php header("Status: http/1.0 200 Ok\n"); ?>
 
 Top
Stierus Супермодератор
Отправлено: 20 Января, 2009 - 14:58:38
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Цитата:
Это вам не NPH-скрипты Тут надо использовать всевдо-поле Status

Не нужно
 
My status
 Top
Гость
Отправлено: 20 Января, 2009 - 15:01:48
Post Id


УДАЛЁН










Оригинально, и кстати почему HTTP/1.0 а не HTTP/1.1 ?
 
 Top
Stierus Супермодератор
Отправлено: 20 Января, 2009 - 15:08:59
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Цитата:
почему HTTP/1.0 а не HTTP/1.1
Описался, в статье уже исправил.
Цитата:
Оригинально
это к чему ?
 
My status
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB