|
|
|
| Здравствуйте. У меня вписан в htaccess такой код:
AddDefaultCharset UTF-8
RewriteEngine On
RewriteBase /
RewriteRule ^admin.html$ admin.php [L,QSA]
RewriteRule ^admin-([a-z0-9_-]+).html$ admin.php?p=$1 [L,QSA]
RewriteRule ^([a-z0-9_-]+).html$ index.php?p=$1 [L,QSA]
|
Но почему то не все браузеры хотят работать с ссылками вида моястраница.html.
Например мобильный браузер опера не хочет отправлять данные с формы методом POST на страницу указанную в action="моястраница.html", а вот при action="?p=моястраница" всё нормально. Так же само и скрипты PHP работающие через CURL. Как можно сделать что бы везде всё работало правильно? | |
|
|
|
|
|
|
|
для: pavluxa09
(14.01.2012 в 15:02)
| | Ну мобильные браузеры всегда отстают от "тяжелой артиллерии", хотя бы потому, что им приходиться работать в условиях мобильных операционных систем, которые и десятой доли возможностей полноценных операционных систем не предоставляют (в том числе и разработчикам). Вряд ли miniOpera обладает поддержкой работы с русскими символами без внешней перекодировки. | |
|
|
|
|
|
|
|
для: cheops
(14.01.2012 в 19:26)
| | Проблема не в русских текстах, а в том что он не распознаёт mypage.html , токо ?p=mypage | |
|
|
|
|
|
|
|
для: pavluxa09
(14.01.2012 в 21:00)
| | Дело в том, что RewriteRule работает на стороне сервера и от мини оперы никак не зависит. Тут не в этом проблема, а в чем-то другом. А вот в чем, я чет никак не могу понять.... Просто я как-раз WAPом занимаюсь в основном, и таких проблем не встречал. Вы бы привели фрагмент кода, чтоб подумать получше. | |
|
|
|
|
|
|
|
для: Sfinks
(14.01.2012 в 22:10)
| | HTACCESS
AddDefaultCharset UTF-8
RewriteEngine On
RewriteBase /
RewriteRule ^admin.html$ admin.php [L,QSA]
RewriteRule ^admin-([a-z0-9_-]+).html$ admin.php?p=$1 [L,QSA]
RewriteRule ^([a-z0-9_-]+).html$ index.php?p=$1 [L,QSA]
|
При отправке форма не отправляет данные а тупо переходит на страницу
<form action="contacts.html' method="post">
...
</form>
|
Всё супер пашет
<form action="?p=contacts' method="post">
...
</form>
|
Такая же проблема когда настраиваешь некоторые платежные системы, оне на страницы вида mygame.html не отправляют данные POST. | |
|
|
|
|
|
|
|
для: pavluxa09
(14.01.2012 в 22:39)
| | А у вас в коде так и написано:
"contacts.html'
??? Или это вы в спешке с ковычками напутали?
А в десктопных браузерах работает как и предполагалось?
А contacts.html в корне сайта лежит?
И QSA из редиректа уберите. При таком редиректе это не имеет смысла. | |
|
|
|
|
|
|
|
для: Sfinks
(14.01.2012 в 23:16)
| | В спешке ковычки попутал а в коде нормально. В десктопных браузерах норма. contacts.html вообще на сервере нет, у меня сделано ЧПУ где ссылки вида: mypage.html заменяются реальностью intex.php?p=mypage.
Попытался убрать но ничего не поменялось. | |
|
|
|
|
|
|
|
для: pavluxa09
(15.01.2012 в 00:54)
| | > contacts.html вообще на сервере нет, у меня сделано ЧПУ где ссылки вида:
> mypage.html заменяются реальностью intex.php?p=mypage.
Ну понятно. Оговорился. Имелся ввиду файл с формой из которой идет обращение. Он в корне?
Попробуйте в форме точнее путь указать: "./contacts.html" или "/contacts.html".
А еще лучше "http://".$_SERVER["SERVER_NAME"]."/contacts.html"
Туповатые они, мобильные браузеры. Скорее всего неправильно путь интерпретируют.
> Попытался убрать но ничего не поменялось.
И не должно было... Я ж говорю, бессмысленная в данной ситуации штука. | |
|
|
|
|
|
|
|
для: Sfinks
(15.01.2012 в 02:04)
| | Попытался сделать как вы предложили, браузеры заработали. А вот CURL нет.
То есть если на страницу mypage.html отправляется POST запрос через CURL то данные на страницу тупо не приходят, токо если слать на ?p=mypage | |
|
|
|
|
|
|
|
для: pavluxa09
(15.01.2012 в 04:25)
| | Надеюсь у вас ПХП >= 5.1.3? Тогда добавьте в CURL:
curl_setopt($ch,CURLINFO_HEADER_OUT,true)
| и после curl_exec($ch); выполните
$headers = curl_getinfo($ch,CURLINFO_HEADER_OUT);
echo $headers;
| Посмотрим что там и куда передается.... | |
|
|
|
|
|
|
|
для: Sfinks
(15.01.2012 в 09:51)
| | Дело не во мне, а в роботах. У меня работы платежных систем не могут передать данные на обработчик. Они же не смогут написать эту строку | |
|
|
|
|
|
|
|
для: pavluxa09
(17.01.2012 в 12:13)
| | Значит роботы корявые. Или тоже путь не находят (что в общем-то и есть корявость).... RewriteRule у вас настроены правильно. Раз они работают хоть где-то, то должны работать везде,
Т.К. БРАУЗЕР, CURL И Т.Д. И Т.П. ПОНЯТИЯ НЕ ИМЕЮТ, ЧПУ У ВАС ИЛИ РЕАЛЬНЫЙ ФАЙЛ!
Просто нужно наладить взаимодействие.
Вам нужно добиться от этих роботов, чтоб они в ответе обращались к вашему серверу именно в том виде, в котором у вас это прописано в RewriteRule. Вы им как передаете адрес на который они через CURL обращаются?
Или наоборот дописать дополнительное правило для этих роботов. Но для этого нужно знать как они к вам обращаются. Например в логах апача можете найти этого робота и посмотреть. | |
|
|
|
|
|
|
|
для: pavluxa09
(17.01.2012 в 12:13)
| | Кстати, роботы, они ж наверняка какие-то данные файлу пытаются передать, и наверняка через GET. Может просто $ в конце правила убрать?
RewriteRule ^([a-z0-9_-]+).html index.php?p=$1 [L]
| В таком случае и QSA будет иметь смысл
RewriteRule ^([a-z0-9_-]+).html index.php?p=$1 [L,QSA]
|
| |
|
|
|
|
|
|
|
для: Sfinks
(17.01.2012 в 12:53)
| | Да возможно, а как сделать что бы работало? И что такое QSA? | |
|
|
|
|
|
|
|
для: pavluxa09
(17.01.2012 в 18:38)
| | >И что такое QSA?
Флаг, который требует, чтобы mod_rewrite не игнорировал GET-параметры. | |
|
|
|
|
|
|
|
для: pavluxa09
(17.01.2012 в 18:38)
| | > Да возможно, а как сделать что бы работало?
Я же написал вам. Для начала исправьте RewriteRule как я указал выше. Если не поможет, найдите в логах доступа апача обращение от робота платежной системы и, если сами не разберетесь, напишите сюда как он к вам обращается.
> И что такое QSA?
Этот флаг заставляет мод реврайт дописать к конечному пути начальную строку запроса. Например если у вас правило:
RewriteRule index.html index.php?q=index [L,QSA]
| а робот поисковика обращается к файлу например так:
http://server.ru/index.html?result=OK
| то конечный путь будет выглядеть так:
http://server.ru/index.php?q=index&result=OK
|
| |
|
|
|
|
|
|
|
для: Sfinks
(17.01.2012 в 23:41)
| | Прошу обратить внимание, что если в браузере почистить куки то начинает всё работать | |
|
|
|