Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > RewriteRule и формы


Автор: deMike 20.3.2006, 18:10
Привет, вообщем я сделал редиректы через rewriterule, возьмём например:
Код
RewriteRule ^news(/?)+$ /?act=news

Т.е. вместо index.php?act=news, можно написать просто http://адрес/news,
так вот вопрос в том, как передать данные из html формы к этой странице news,
просто если в форме писать action='index.php?act=news' то все данные передаются,
но если action='whois', он открывает ту страницу но не показывает данные,
и метод передачи тут роли тоже оказывается не играет, хоть post хоть get.

Автор: xolod 20.3.2006, 19:42
RewriteRule ^news/$ /index.php?act=news [QSA]

И передавай данные

Код

<form action="http://www.someyoursite/news/" method="post">
 // элементы формы
</form>


Проверено не раз, работает на 220%.

Автор: deMike 21.3.2006, 15:05
Так, у меня вообще оказывается проблема в том, что всё перестало открываться по /news, /main и т.д.
Структура такая:

- htdocs
-- site // здесь сайт
--- index.php
--- pages
---- news.html
--- .htaccess
-- index.php // просто так

В .htaccess пишу:
Код
RewriteEngine On
Options +FollowSymlinks
RewriteBase /
RewriteRule ^map(/?)+$ /?act=map
RewriteRule ^news/$ /?act=news [QSA]


Если например пишу: http://localhost/site/map,
то он открывает текст страницы index.php из корня htdocs.
А если пишу news, то:
Цитата
Not Found
The requested URL /site/news was not found on this server.


Что делаю не так?

Автор: xolod 21.3.2006, 21:36
Я тебе в правиле RewriteRule ^news/$ /?act=news [QSA] указал, что ссылка может быть только вида http://www.somesite.domen/news/, поэтому и не открывается.
Можешь отредактировать так:
RewriteRule ^news(/?)+$ /?act=news [QSA]

Автор: deMike 22.3.2006, 12:46
Всёравно отображает контент из index.php которая в корне htdocs на уровень ниже директории site - где сам сайт.
А если убрать index.php, то браузер пишет: The requested URL / was not found on this server.
Мне кажется проблема в RewriteBase /, я пробовал писать RewriteBase /site/, но всё тоже самое...

Автор: deMike 22.3.2006, 13:44
Спасибо, вопрос решён.

Автор: MPx 9.5.2006, 12:41
Так как ты его решил? Запости правильный вариант, плиз. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)