Поиск:

Ответ в темуСоздание новой темы Создание опроса
> mod_rewrite, манипуляция действий с URL 
:(
    Опции темы
PARROT
Дата 4.11.2005, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Из прочитанных тем по теме mod_rewrite, получилось следущее:
файл .htaccess
Код

Options Includes +ExecCGI
AddType text/x-server-parsed-html .html
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro
RewriteRule ^.*$ - [F]
RewriteEngine on
Options +FollowSymLinks
RewriteEngine on
RewriteRule index/(.*)/(.*)/$ /index.php?$1=$2

файл index.php
Код

<head><title><? echo $title[$page] ?></title> </head>
<?
if (!$page) $page="about"; # С этой страницы стартует сайт. Т.е. если $page не существует
//if (!$title[$page]) $page="404"; # Если такой страницы нет на сервере
?>
<?
error_reporting (E_ALL ^ E_NOTICE);
$uri = $_SERVER['REQUEST_URI'];
str_replace("//","/",$uri);
$url = explode("/", $uri);
echo $uri;
if($_SERVER['REQUEST_URI'] == "/"){
include("pages/".$page.".php");
}else{
echo "Такой страницы нет";
}
?>
вы находитесь: <? echo $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>


Пишет: Такой страницы нет.
smile

Это сообщение отредактировал(а) PARROT - 5.11.2005, 00:18


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 5.11.2005, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



PARROT
ой, не нравятся мне твои правила. Что ты хочешь сделать?

PM ICQ   Вверх
PARROT
Дата 5.11.2005, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Mal Hack, я хочу чтобы ссылки:
Код

http://www.avtodiesel.spb.ru/index.php?page=about

Выглядели так:
Код

http://www.avtodiesel.spb.ru/about

Ну примерно так. Я не совсем понимаю что я делаю. smile



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 5.11.2005, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



Сделай проще.
RewriteRule /([A-Z0-9]+) /index.php?page=$1

Или используй то, что я описывал в своей статье.

Это сообщение отредактировал(а) Mal Hack - 5.11.2005, 01:29
PM ICQ   Вверх
PARROT
Дата 5.11.2005, 01:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Mal Hack, я все прочитала, что-то поняла.
Но ничего не получается.
Спокойной ночи! smile

Это сообщение отредактировал(а) PARROT - 5.11.2005, 01:57


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 5.11.2005, 01:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



PARROT давай завтра на свежую голову... smile

PM ICQ   Вверх
PARROT
Дата 5.11.2005, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Так, ну вот, просмотрела все что можно, толку нуль.
Пришла к выводу что лучше сделать все по новой:
/mods/ - каталог для хранения модулей
/img/ - картинки
/include/ - каталог вспомогательных файлов
в include создаем два файла top.php и bottom.php
top.php
Код

echo "<html>
<head>
<meta http-equiv='Content-Type' content='text/html;
 charset=windows-1251'>
<title>$PAGE_TITLE</title>
</head>
<body>
<table border='0' cellpadding='0' cellspacing='0'
 style='border-collapse: collapse' bordercolor='#111111' width='100%'
 id='AutoNumber1'>
<tr>
<td width='100%' colspan='2' bgcolor='#DDFFFF'>
<p align='center'>здесь выводится шапка</td>
</tr>
<tr>
<td width='17%' align='left' valign='top' bgcolor='#FFDFFF'>
<b>Меню сайта</b><p>
<b>- </b><a href='index.php?mod=mod1'>Модуль1</a>
<br>
- <a href='index.php?mod=mod2'>Модуль2</a></td>
<td width='83%' align='left' valign='top'>";

bottom.php
Код

echo "& lt;/td>
</tr>
<tr>
<td width='100%' align='left' valign='top' colspan='2'
 bgcolor='#DDFFFF'> </td>
</tr>
</table>
</body>
</html>";

Также создала файл конфигурации config.php и положила его в каталог include.
config.php
Код

#Модуль по умолчанию
$sys_def_mod="mod1";

Теперь создадим два файла mod1.php и mod2.php и положим их в каталог mods.
Код

if (!eregi("index.php", $PHP_SELF)) { die ("Access denied"); }
echo "Это модуль номер 1!<br>";
echo "А <a href='index.php?mod=mod2'>здесь</a> можно посмотреть на модуль номер 2";
?>

mod2.php
Код

if (!eregi("index.php", $PHP_SELF)) { die ("Access denied"); }
echo "Это модуль номер 2!<br>";
echo "А <a href='index.php?mod=mod1'>здесь</a> можно посмотреть на модуль номер 1";

index.php
Код

if (!eregi("index.php", $PHP_SELF)) { die ("Access denied"); }
$PAGE_TITLE="Это Я, модуль номер 1!!!";
include("include/top.php");
echo "Это модуль номер 1!<br>";
echo "А <a href='index.php?mod=mod2'>здесь</a> можно
посмотреть на модуль номер 2";
include("include/bottom.php");

.htaccess
Код

RewriteEngine on
RewriteBase /
RewriteRule ^mod/([0-9]+)$ /index.php?mod=$1 [L]

Ссылки выглядят:
Код

index.php?mod=mod1

Нужно чтобы после обработки они выглядели:
Код

index.php/mod

Ничего не получается, перерыла весь инет. smile


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 5.11.2005, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



Код

RewriteEngine on
RewriteRule ^mod/([0-9]+)$ .index.php?mod=$1 [L]

У тебя быдут линки:
index.php/mod/mod1
index.php/mod/mod2
При этом, ДО этого правила надо дописать:
Код

RewriteRule ^mod/,$ .index.php?mod=0 [L]

Чтобы обрабатывались линки
index.php/mod
и
index.php/mod/

ЗЫ: Если будет писать 404, то полностью покажи какой он файл не может найти (веб сервер выдаст) и проверь, а mod_rewrite-то включен?
PM ICQ   Вверх
PARROT
Дата 5.11.2005, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



.htaccess
Код

RewriteRule ^mod/,$ .index.php?mod=0 [L]
RewriteEngine on
RewriteRule ^mod/([0-9]+)$ .index.php?mod=$1 [L]

Ссылки переделала так:
Код

<a href='index.php/mod/mod1'>Модуль1</a>
<a href='index.php/mod/mod2'>Модуль2</a>

Происходит зацикливание вида:
Код

http://domen/index.php/mod/index.php/mod/index.php/mod/index.php/mod/mod1

Ошибки не выдает.


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 5.11.2005, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



index.php вообще убирай из ссылок и из правил. Остается только в .index.php?mod=$1 , присем точку перед index.php убери.
Надо вот так:
Код

RewriteRule ^mod/?$ index.php?mod=0 [L]

PM ICQ   Вверх
PARROT
Дата 5.11.2005, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Дает такую ошибку:
Код

The requested URL /mod/mod2 was not found on this server.
Вы ошиблись при наборе URL в браузере. Вероятнее всего, сервер пытается найти файл z:/home/vingrad/www/mod/mod2, которого не существует. 

htaccess
Код

RewriteRule ^mod/?$ index.php?mod=0 [L]
RewriteEngine on
RewriteRule ^mod/([0-9]+)$ .index.php?mod=$1 [L]

ссылки:
Код

<a href='mod/mod1'>Модуль1</a> 




--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 5.11.2005, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



.htaccess должен быть такой:
Код

RewriteEngine on
RewriteRule ^mod/?$ index.php?mod=0 [L]
RewriteRule ^mod/([0-9]+)$ .index.php?mod=$1 [L]


ЗЫ: А ты mod_rewrite в httpd.conf подключала?
PM ICQ   Вверх
PARROT
Дата 6.11.2005, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Модуль раскоментирован, а значит работоспособен.
Ошибка таже smile


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 6.11.2005, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 15
Всего: 261



Пробуем вот так:
Код

RewriteEngine on
RewriteRule ^/mod/?$ /index.php?mod=0 [L]
RewriteRule ^/mod/([0-9]+)$ /index.php?mod=$1 [L]

PM ICQ   Вверх
PARROT
Дата 6.11.2005, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Таже ошибка.
Ссылки точно так писать надо?
Код

<a href='mod/mod1'>Модуль1</a>



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.0592 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.