|
| Дата |
|
USD/RUB | 93.4409 | BTC/USD | 63633.7182 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
20.01.2011, 07:35
|
#1
|
Senior Member
Регистрация: 14.08.2008
Адрес: станица Банькок, Сиям
Сообщений: 1,780
Бабло: $200550
|
Подскажите по WP и линкам в нём, плиз_
Есть N WP-блогов и там полно всяких ссыл (в постах). Вопросег - как бы сделать так, чтобы кликнув на них (на любой из линков, т.е. все) посетитель шёл не туда, куда написанно, а туда, куда мне надо.
Редактировать ручками 500++ постов - устану нах, может есть какое-то .htaccess решение?
__________________
silence is gold. buy gold in silence. buy silent gold. enjoy golden silence. бесшумные сервера в звенящей тишине секретного датацентра SilentHost
|
|
|
20.01.2011, 08:33
|
#2
|
автоматизирую интернеты
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
|
вот какие мысли имею:
во-первых, можно редактировать не ручками, а регекспом, причем можно как по дампу им пройтись, так и прям из mysql по таблице wp_posts или как-так ее - это лучший вариант по производительности.
во-вторых, можно в каждый из вордпрессов добавить код либо php, либо js (возможно это будет уже готовый плагин), который будет также регекспами изменять урлы на твои, но уже "на лету" на конкретной странице.
в-третьих, можно в .htaccess написать перенаправление всего вывода на свой новый php файл, который также как фильтр будет регекспом менять урлы
ну наверняка еще можно написать модуль к апачу/nginx (а может уже есть?)
если говорить за 3-ий вариант, то это будет выглядить так:
в .htaccess меняем вывод через index.php на myredirect.php:
Код:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /myredirect.php [L]
</IfModule>
# END WordPress
myredirect.php кидаем в корень WP:
PHP код:
<?php ob_start(); include 'index.php'; $out = ob_get_contents(); ob_end_clean(); echo preg_replace('|<a(.*)href=["\'](.*)["\']|Ui', '<a\1href="http://google.com"', $out); ?>
ну как-то так, у меня с включенными ЧПУ сработало. но лучше все же первый способ с регекспом по таблице бд
|
|
|
20.01.2011, 09:20
|
#3
|
Senior Member
Регистрация: 14.08.2008
Адрес: станица Банькок, Сиям
Сообщений: 1,780
Бабло: $200550
ТС -->
|
ТС
Странно, у меня фик вышло с .htaccess + php
сам Вордпресс не заинклюдился - хм. Попки владельцев блогов пока ещё целы ...
__________________
silence is gold. buy gold in silence. buy silent gold. enjoy golden silence. бесшумные сервера в звенящей тишине секретного датацентра SilentHost
Последний раз редактировалось StHost; 20.01.2011 в 09:29.
|
|
|
20.01.2011, 09:36
|
#4
|
автоматизирую интернеты
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
|
Цитата:
Сообщение от StHost
сам Вордпресс не заинклюдился
|
а что пишет?
попробуй чисто файл заинклюдить:
<?php
include 'index.php';
?>
|
|
|
20.01.2011, 10:56
|
#5
|
Senior Member
Регистрация: 14.08.2008
Адрес: станица Банькок, Сиям
Сообщений: 1,780
Бабло: $200550
ТС -->
|
ТС
сейчас сделаю... моменто ...
Так, загрузил всю ботву блога, но вместо того, чтобы показать посты (как обычно при http://www.myblog.com/index.php) он показал :
Not Found
Sorry, but you are looking for something that isn't here.
__________________
silence is gold. buy gold in silence. buy silent gold. enjoy golden silence. бесшумные сервера в звенящей тишине секретного датацентра SilentHost
|
|
|
20.01.2011, 11:09
|
#6
|
автоматизирую интернеты
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
|
приводим .htaccess в изначальное положение.
в корне блога создаем файл myredirect.php:
<?php
include 'index.php';
?>
открываем http://www.myblog.com/myredirect.php - что пишет? вот то, что ты написал? если да, то показывай .htaccess
|
|
|
20.01.2011, 11:25
|
#7
|
Senior Member
Регистрация: 14.08.2008
Адрес: станица Банькок, Сиям
Сообщений: 1,780
Бабло: $200550
ТС -->
|
ТС
я php файл для удобства назвал lndex.php через латинскую "л"
Цитата:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^lndex\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule . /index.php [L]
RewriteRule . /lndex.php [L]
</IfModule>
# END WordPress
|
__________________
silence is gold. buy gold in silence. buy silent gold. enjoy golden silence. бесшумные сервера в звенящей тишине секретного датацентра SilentHost
|
|
|
20.01.2011, 11:40
|
#8
|
Senior Member
Регистрация: 14.08.2008
Адрес: станица Банькок, Сиям
Сообщений: 1,780
Бабло: $200550
ТС -->
|
ТС
chesser, Спасибо я думаю что хитрая задачка и не буду время отнимать - сам поковыряю ... Стало даже интерестно, как бы такой "клоакинг" срулить
__________________
silence is gold. buy gold in silence. buy silent gold. enjoy golden silence. бесшумные сервера в звенящей тишине секретного датацентра SilentHost
|
|
|
20.01.2011, 11:41
|
#9
|
автоматизирую интернеты
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
|
вот тут:
RewriteRule . /lndex.php [L]
если заменить на:
RewriteRule . /myredirect.php [L]
в котором только include 'index.php';
и открыть любую старую страничку блога, то должно выводить блог как ни в чем не бывало
Если да, то дальше дополняешь код нового файла ob функциями, кстати, на их работу может повлиять включенное gzip сжатие, помню была проблемка какая-то с этим
ps ну или ася-скайп - велкоме
|
|
|
20.01.2011, 12:03
|
#10
|
Senior Member
Регистрация: 14.08.2008
Адрес: станица Банькок, Сиям
Сообщений: 1,780
Бабло: $200550
ТС -->
|
ТС
я в myredirect.php от злости написал
так вот если прямо указать имя файла - то ок, редиректит, а через .htaccess фигушке. У меня видно пуленепробиваемый Апач стоит ... Буду йебаться, чтож делать
__________________
silence is gold. buy gold in silence. buy silent gold. enjoy golden silence. бесшумные сервера в звенящей тишине секретного датацентра SilentHost
|
|
|
|