Вернуться   Форум SAPE.RU > Система SAPE.ru > Вопросы по работе системы

-->
Ответ
 
Опции темы
Старый 01.05.2008, 22:02   #1
Мастер
 
Аватар для timtroll
 
Регистрация: 02.04.2007
Сообщений: 594
Вес репутации: 220
timtroll скоро станет известенtimtroll скоро станет известен
Отправить сообщение для timtroll с помощью ICQ
По умолчанию Вопрос спецам по php

У меня появилась нетрадиционная ситуация с кодом САПЫ на joomla:

Некий умелец-любитель rewrite написал преобразование url в .htaccess из традиционного:
http://урл_сайта/index.php?content=1&view=1
в
http://урл_сайта/content/view/14/1/

Естесственно САПА видит преобразованный код, вот только купленные по этому адресу ссылки никто не видит, поскольку код САПЫ спрашивает при запросе страницы честый REQUES_URI, т.е. - http://урл_сайта/index.php?content=1&view=1

Может кто поможет с преобразованием кода САПЫ.

Вот код mod_rewrite:
------------------------------------------
Options +FollowSymLinks

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes##
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
RewriteRule ^(content/|component/) index.php

RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
__________________
Уберите чекбокс "Не поднимать цену для уже размещённых ссылок"
А тут Вы быстро можете посчитать бюджет оптимизации
Не забывайте - создание сайта, создание сайтов!
timtroll вне форума   Ответить с цитированием
Старый 01.05.2008, 22:26   #2
Новичок
 
Регистрация: 12.11.2007
Сообщений: 48
Вес репутации: 201
Lexus21rus на пути к лучшему
По умолчанию

Сапа получит http://урл_сайта/content/view/14/1/
У меня блог wordpress с чпу, сапа получает чпушные адреса.
Lexus21rus вне форума   Ответить с цитированием
Старый 01.05.2008, 22:29   #3
Мастер
 
Аватар для timtroll
 
Регистрация: 02.04.2007
Сообщений: 594
Вес репутации: 220
timtroll скоро станет известенtimtroll скоро станет известен
Отправить сообщение для timtroll с помощью ICQ
По умолчанию

САПА получает то что нужно, вот только код отдает ссылку только по http://урл_сайта/index.php?content=1&view=1, а не по http://урл_сайта/content/view/14/1/
__________________
Уберите чекбокс "Не поднимать цену для уже размещённых ссылок"
А тут Вы быстро можете посчитать бюджет оптимизации
Не забывайте - создание сайта, создание сайтов!
timtroll вне форума   Ответить с цитированием
Старый 02.05.2008, 07:35   #4
Злой модератор
 
Аватар для Wink
 
Регистрация: 25.03.2007
Адрес: Deep forest
Сообщений: 5,343
Вес репутации: 503
Wink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущее
По умолчанию

Т.е. ссылки были проданы на страничке /index.php?content=1&view=1, а теперь на сайте сменились все адреса?
Можно вот так получить оригинальный адрес
PHP код:
$o['request_uri'] = $_SERVER["PHP_SELF"].'?'.$_SERVER["QUERY_STRING"];
$sape = new SAPE_client($o); 
но по хорошему надо бы сайт на переиндексацию отдавать
Wink вне форума   Ответить с цитированием
Старый 02.05.2008, 13:42   #5
Администратор
 
Аватар для Ank
 
Регистрация: 05.02.2007
Сообщений: 18,405
Вес репутации: 715
Ank - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущее
По умолчанию

timtroll, если в линкс.дб ссылка должна быть по адресу /index.php?content=1&view=1 а по жизни такого уже нет - то переиндекс.
Если в линкс ЧПУшный алрес - /content/view/14/1/, а ее просто не видно - то это лечится.
Вызовите phpinfo() и найдите подходящую переменную, в которой верный адрес есть. его и передайте в конструктор в $o['request_uri']
__________________
Начать зарабатывать на своих сайтах. Консультирую своих рефов по аське

Читаем ФАК
Ank вне форума   Ответить с цитированием
Старый 02.05.2008, 15:01   #6
Мастер
 
Аватар для timtroll
 
Регистрация: 02.04.2007
Сообщений: 594
Вес репутации: 220
timtroll скоро станет известенtimtroll скоро станет известен
Отправить сообщение для timtroll с помощью ICQ
По умолчанию

Цитата:
Сообщение от Wink Посмотреть сообщение
но по хорошему надо бы сайт на переиндексацию отдавать
Сайт изначально САПА проиндексировала как /content/view/14/1/, в реальности установленный код САПЫ выдает /index.php?content=1&view=1, поэтому половина ссылок в ЕРРОР.

$o['request_uri'] = $_SERVER["PHP_SELF"].'?'.$_SERVER["QUERY_STRING"];
$sape = new SAPE_client($o);

Это не подходит, потому как Код и так выдает все в виде
/index.php?content=1&view=1

Задача в том, чтобы код САПЫ выдавал $o['request_uri'] как /content/view/14/1/ т.е. так, как это делает mod_rewrite


PS я не php-шник, поэтому сюда и пишу..
__________________
Уберите чекбокс "Не поднимать цену для уже размещённых ссылок"
А тут Вы быстро можете посчитать бюджет оптимизации
Не забывайте - создание сайта, создание сайтов!
timtroll вне форума   Ответить с цитированием
Старый 02.05.2008, 15:12   #7
Мастер
 
Аватар для timtroll
 
Регистрация: 02.04.2007
Сообщений: 594
Вес репутации: 220
timtroll скоро станет известенtimtroll скоро станет известен
Отправить сообщение для timtroll с помощью ICQ
По умолчанию

Цитата:
Сообщение от Ank Посмотреть сообщение
timtroll, если в линкс.дб ссылка должна быть по адресу /index.php?content=1&view=1 а по жизни такого уже нет - то переиндекс.
Сорри, я Вас не понял... в линкс.дб ссылки только те, которые размещаются, а урлов страниц там нет... :-)
__________________
Уберите чекбокс "Не поднимать цену для уже размещённых ссылок"
А тут Вы быстро можете посчитать бюджет оптимизации
Не забывайте - создание сайта, создание сайтов!
timtroll вне форума   Ответить с цитированием
Старый 02.05.2008, 15:44   #8
Злой модератор
 
Аватар для Wink
 
Регистрация: 25.03.2007
Адрес: Deep forest
Сообщений: 5,343
Вес репутации: 503
Wink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущее
По умолчанию

Вообще-то в $_SERVER["REQUEST_URI"] в таких случаях и содержится новый адрес вида /content/view/14/1/ и никаких дополнительных изменений делать не нужно. Ну попробуйте еще сделать
PHP код:
$o['request_uri'] = $_SERVER["REDIRECT_URI"];
$sape = new SAPE_client($o); 
или так
PHP код:
$o['request_uri'] = $_SERVER["REDIRECT_URL"];
$sape = new SAPE_client($o); 

Цитата:
Сообщение от timtroll Посмотреть сообщение
в линкс.дб ссылки только те, которые размещаются, а урлов страниц там нет...
Есть. Иначе как бы он определил на какую страницу какие ссылки ставить? Посмотрите внимательнее.

Последний раз редактировалось Wink; 02.05.2008 в 15:47.
Wink вне форума   Ответить с цитированием
Старый 02.05.2008, 16:23   #9
Мастер
 
Аватар для timtroll
 
Регистрация: 02.04.2007
Сообщений: 594
Вес репутации: 220
timtroll скоро станет известенtimtroll скоро станет известен
Отправить сообщение для timtroll с помощью ICQ
По умолчанию

Цитата:
Сообщение от Wink Посмотреть сообщение
Есть. Иначе как бы он определил на какую страницу какие ссылки ставить? Посмотрите внимательнее.
Урлов нету, посмотрите свой линкс.дб внимательно.

Цитата:
Сообщение от Wink Посмотреть сообщение
Вообще-то в $_SERVER["REQUEST_URI"] в таких случаях и содержится новый адрес вида /content/view/14/1/ и никаких дополнительных изменений делать не нужно. Ну попробуйте еще сделать
PHP код:
$o['request_uri'] = $_SERVER["REDIRECT_URI"];
$sape = new SAPE_client($o); 
или так
PHP код:
$o['request_uri'] = $_SERVER["REDIRECT_URL"];
$sape = new SAPE_client($o); 
Попробовал, помогло: $o['request_uri'] = $_SERVER["REDIRECT_URL"];

Огромное спасибо!
__________________
Уберите чекбокс "Не поднимать цену для уже размещённых ссылок"
А тут Вы быстро можете посчитать бюджет оптимизации
Не забывайте - создание сайта, создание сайтов!
timtroll вне форума   Ответить с цитированием
Старый 02.05.2008, 16:34   #10
Злой модератор
 
Аватар для Wink
 
Регистрация: 25.03.2007
Адрес: Deep forest
Сообщений: 5,343
Вес репутации: 503
Wink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущее
По умолчанию

Ну уж не знаю почему у вас нет Вот кусок моего линкса

Цитата:
s:19:"/liric/page303.html";a:2:{i:0;s:80:"<a href="http://platon.ya.ru/" target="_blank">страничка Платона</a>";i:1;s:94:"попробуйте: <a href="http://www.sloniki.ru/" target="_blank">мясо слоников</a>";}
Wink вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос к спецам про ДНС Diamond Курилка 4 27.05.2008 16:01
Вопрос спецам в PHP sova Разработка и сопровождение сайтов 3 14.09.2007 18:00


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