Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Apach rewriterule (https://javascript.ru/forum/server/1290-apach-rewriterule.html)

EugenyK 09.06.2008 15:35

Apach rewriterule
 
Здравствуйте.

Хочу сделать, чтобы строка поиска выглядела как
http://site.com/search.html?text=searchstring


Вот так выглядит форма поиска
<form id='search_top' action='search.html' method='GET'>
	<div><input type='text' name='text' id='sf_top' /></div>
	<div><img style='cursor: pointer; margin-top:5px; _margin-top: 4px;' src='./images/search.gif' alt='' onclick="document.location.href=http://site.com/search.html?text='+encodeURIComponent(document.getElementById('sf_top').value)}else{return false}" /></div>
</form>


Это записано в .htaccess
Код:

RewriteEngine on
RewriteRule ^category_([0-9]+)\.html$ index.php?act=cat&id=$1 [L]
RewriteRule ^cats\.html$ index.php [L]
RewriteRule ^news\.html$ index.php?act=news [L]
RewriteRule ^search\.html$ index.php?act=search
RewriteRule ^search\.html\?text=([\w]+)$ index.php?act=search&text=$1 [L]

Однако при обработке запроса в index.php isset($_GET['text']) = false.

Подскажите, как надо правильно оформить RewriteRule для возможности поиска?

tenshi 09.06.2008 18:11

стесняешься, что используешь php? ^_^

Gvozd 10.06.2008 02:12

Цитата:

Сообщение от tenshi
стесняешься, что используешь php? ^_^

глупость сказал. спрятать язык на котором написан сервер, является иногда очень даже полезным.
автору могу посоветовать закоментить все строчки, кроме первой и последней. может быть и заработает, а от этого уже можно будет дальше плясать.
ИМХО, Rewrite очень глючный модуль. как-то по работе работал с ним.
половину его документированных функций так и не заработало корректно даже с мануальными примерами. я двое суток танцевал с бубном тогда.
Иногда было вплоть, что он вместо Rewrite делал Redirect, хотя таковой в принципе нигде не прописывался.
Могу пожелать автору только поднабратся терпения и удачи.

tenshi 10.06.2008 16:16

полезным для каких целей?

Gvozd 10.06.2008 16:47

Для целей защиты от хакинга.
если хакер четко знает на каком язык написан сервер, от это дает ему силное преимущество.
я допустим подписан на RSS-ку по электронной безопасности, и там иногда проскальзывают баги с последних версиях ПХП. в частности один из них рушит апач.хакеру достаточно передать определенную цифру в уязвимое место скрипта, и вуаля.сервис не работает. просто и со вкусом. правда там по моему завязка на редко используемую(мной) функцию printf.
вы все еще хотите чтоб все знали на чем вы пишите сервер?

tenshi 10.06.2008 17:27

миллионы сайтов работают на пхп. неужели ты думаешь, что крякер не догадается проверить эксплойты для пхп? особенно увидев в заголовках строку вида "X-Powered-By: PHP/5.1.6" ^_^

Gvozd 10.06.2008 21:29

дагадается-не догадается, это дело десятое. у каждого из них свой уровень. и защищатся от посягательств кул-хацкеров тоже стоит. поэтому не стоит им давать все карты в руки. и "X-Powered-By: PHP/5.1.6" им показывать тоже не стоит.
Я не говорю об идеальной защите. Жизнено необходимой, в большинстве случаев она тоже не является. но учитывая то, что если всего парой строчек можно кул-хацкера заставить думать что сайт написан например на АСП, и пусть он до опупения подбирает эксплоиты к нему, может сыгарть определенную роль.
ЗЫ офтоп пошел. если хочеш продолжить обсуждение, может нам стоит в отдельную тему перебратся. к тому же автору никто так и не помог

EugenyK 11.06.2008 16:48

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

Прятать скрипты мне влом, честно. Я просто хотел сделать более красивые строки. Везде. Можно конечно поиск оставить как index.php?act=search&text=query, но мне такой вид не очень нравится.

tenshi 11.06.2008 18:19

а чем не нравится search.php?text=query
?

Kolyaj 11.06.2008 18:30

EugenyK, уж лучше тогда /search?text=query


Часовой пояс GMT +3, время: 16:06.