Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.08.2010, 14:10   #1
dimonnnn
Пользователь
 
Регистрация: 07.08.2010
Сообщений: 29
По умолчанию mod_rewrite

Папка url имеет такой адрес: C:\wamp\www\url
Создал файл .htaccess, в котором прописал:
Код:
RewriteEngine On
RewriteBaxe /url
RewriteRule from\.php$ from2.php
итог:
Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, admin@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
P.S. разбираю работу mod_rewrite из статьи http://www.opennet.ru/docs/RUS/mod_rewrite/
что не так я сделал? rewrite_module я включил
dimonnnn вне форума Ответить с цитированием
Старый 07.08.2010, 14:29   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
RewriteBaxe /url
наверно вот это...
должно быть Base
Andkorol вне форума Ответить с цитированием
Старый 07.08.2010, 15:27   #3
dimonnnn
Пользователь
 
Регистрация: 07.08.2010
Сообщений: 29
По умолчанию

from.php:
Код:
<form name=form1 action=from.php method=get>
<input type=text name=id>
<input type=submit name=go value=go >
</form>
.htaccess:
Код:
RewriteEngine On
RewriteBase /url
RewriteRule ^([0-9]+)$ user.php?id=$1&go=$2 [L]
в результате при нажатии на кнопку, адрес такой:
http://localhost/url/from.php?id=2&go=go
а не такой:
http://localhost/url/from.php/id2
как такой сделать?
и как сделать такой:
http://localhost/url/from.php/id/2
???
dimonnnn вне форума Ответить с цитированием
Старый 07.08.2010, 15:35   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Вы путаете причину и следствие...
mod_rewrite позволяет обрабатывать адреса вида
Код:
http://localhost/url/from.php/id/2
- но отнюдь не формирует их...
Адреса такого вида должны формироваться в сценарии.
У вас же форма обрабатывается методом GET - потому данные автоматом идут в строку запроса.
Обрабатывайте форму методом POST - а нужные вам ссылки в нужном виде формируйте в самом коде.
Andkorol вне форума Ответить с цитированием
Старый 07.08.2010, 15:41   #5
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Код:
и как сделать такой:
http://localhost/url/from.php/id/2
???
а смысл?
какая задача у вашего элемента id ?
он просто говорит о том что он - это id чего-то?
достаточно просто передавать http://localhost/url/from.php/2 - подразумевая первый параметр как id ...
Andkorol вне форума Ответить с цитированием
Старый 07.08.2010, 15:56   #6
dimonnnn
Пользователь
 
Регистрация: 07.08.2010
Сообщений: 29
По умолчанию

Код:
<form name=form1 method=post>
<input type=text name=id>
<input type=submit name=go value=go >
</form>
<?php
	if(isset($_POST['go']))
	{	
		$id = $_POST['id'];
		header("Location: http://localhost/url/from.php/$id ");
	}
?>
теперь адрес такой:http://localhost/url/from.php/9
осталось его сделать таким: http://localhost/user/9
dimonnnn вне форума Ответить с цитированием
Старый 07.08.2010, 16:02   #7
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

создаете папку user в корне. кидаете туда form.php переименовываете в index.php, в коде тоже меняете путь и будет вам такая ссылка, или я что то не так понял?
nec117 вне форума Ответить с цитированием
Старый 07.08.2010, 16:07   #8
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

а еще лучше написать функцию, которая будет проверять логин и пас в form.php и возвращать ссылку http://localhost/user/id юзера в страницу, где осуществляется редирект
nec117 вне форума Ответить с цитированием
Старый 07.08.2010, 16:14   #9
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

header() нужно отправлять ДО любого вывода в браузер - иначе не сработает...
Цитата:
осталось его сделать таким: http://localhost/user/9
- какова при этом структура проекта и его логика?
Что должно происходить после перехода по ссылке?..и где (в /users - или в корне?)
Опишите конкретно задачу приложения - советы по кускам пользы не принесут.
Andkorol вне форума Ответить с цитированием
Старый 09.08.2010, 15:27   #10
dimonnnn
Пользователь
 
Регистрация: 07.08.2010
Сообщений: 29
По умолчанию

ну мне надо написать сайт, где у каждого пользователя будет своя личная страничка. http://localhost/user/9 - это страничка пользователя 9
ну, как бы страничка-то у всех одна, но она в соответствии с пользователем заполняется его параметрами из базы данных.
Сначала я думал что надопросто отправить header и перейти по этому адресу http://localhost/user/9 (переход на личную страничку после авторизации)(саму авторизацию не приводил, чтобы не загромождать код, поэтому задачу упростил)
Вот перешли мы на http://localhost/user/9 . а потом работаем с url и оттуда извлекаем последнее число, (работа со строками). Извлекли и видим что оно 9, значит это пользователь 9. но мне кажется это как-то криво, хотя я не знаю как корректно сделать ...
dimonnnn вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
mod_rewrite spbcypher PHP 1 06.03.2010 19:18
mod_rewrite не работает(( hoza_syl PHP 18 08.12.2009 19:31
Apache mod_rewrite и GET переменные php Алориан PHP 11 22.11.2009 08:20
Вопрос по mod_rewrite Jekis Помощь студентам 2 01.09.2009 20:19