Muhandis: Интересно, что в примерах в интернете присутствовало еще одно условие, которое снова делало эти директивы неработоспособными, а именно RewriteCond %{REQUEST_FILENAME} !-d, то есть проверка на то, не является ли путь директорией на сервере.
Как раз таки наоборот это условие упрощает в вашем случаи.
DirectorySlash Off
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -d # если это директория
RewriteRule ^([^/]+)$ /$1.html [L] # тогда открыть одноименный файл с директорией(без редиректа, он в принципе не к чему)
---------- Добавлено 03.10.2016 в 15:51 ----------
Только вот почему на vds работает? Хотя это могло быть раньше.
Возможно разные заголовки отдает веб-сервер Expire и Cache-control, и да, он браузер кеширует и редиректы. Надо чистить кеш. А скрипт, он рабочий вроде..
Да, одна директория со скриптом(шаблонами, админкой) для всех сайтов - DocumentRoot и в ней уже создаем отдельно директории для хранения БД, как я примерно описал выше.
Smirnof: rereg, я правильно понял, что в самих папках с сайтами будет только база данных?
Пошел тестировать...
Нет, не надо создавать для каждого домена/сайта отдельную папку.
1) Загрузите свой скрипт в любую директорию на сервер пусть будет /var/www/...../data/www
Для apacha DocumentRoot для всех новых доменов/сайтов/вирт.хостов(как угодно называйте) указываем в конфиг файле ту же директорию, что выше /var/www/...../data/www
2) Создать директорию для хранения БД в нашем едином DocumentRoot для всех сайтов, к примеру /var/www/...../data/www/any_dir/%host%/%db_file% где %host% - имя домена/сайта, %db_file% - имя файла БД
3) На точке входе к скрипту проверять SERVER_NAME или HTTP_HOST и в зависимости от них инклудить БД, как я писал выше include(__DIR__."/any_dir/%host%/%db_file%").
Шаблон и панель управления(админка) одна для всех сайтов, только разные БД для каждого хоста, как я понял..
Все хосты назначьте на один(единый) DocumentRoot - и там держите скрипты(шаблон, админку) а сами БД в вашем случаи держите в некой директории, к примеру /var/www/DocumentRoot/data/%host%/db.php
Далее скриптом проверяем хост и в зависимости от него подключайте нужную БД.
Консольный WebKit типа http://phantomjs.org/ у меня даже где то скрипт был под выдачу Яши, на одном IP с не большой задержкой доходил до +300-ой станицы выдачи, правда не тестировал на каком этапе выскачет капча.
Под Яшу на нативном JS писать надо. сторонние библиотеки не подключить типа jquery - он както это вычисляет.
Интересно, что в примерах в интернете присутствовало еще одно условие, которое снова делало эти директивы неработоспособными, а именно RewriteCond %{REQUEST_FILENAME} !-d, то есть проверка на то, не является ли путь директорией на сервере.
Как раз таки наоборот это условие упрощает в вашем случаи.
Плюсую. Тоже об этом думал.
---------- Добавлено 03.10.2016 в 15:51 ----------
Только вот почему на vds работает? Хотя это могло быть раньше.
Возможно разные заголовки отдает веб-сервер Expire и Cache-control, и да, он браузер кеширует и редиректы. Надо чистить кеш. А скрипт, он рабочий вроде..
У ripn.net и по 80 порту whois есть http://www.ripn.net/nic/whois/
Не пойму только как он закрыт 43 порт на исходящие соединения..
Да, одна директория со скриптом(шаблонами, админкой) для всех сайтов - DocumentRoot и в ней уже создаем отдельно директории для хранения БД, как я примерно описал выше.
rereg, я правильно понял, что в самих папках с сайтами будет только база данных?
Пошел тестировать...
Нет, не надо создавать для каждого домена/сайта отдельную папку.
1) Загрузите свой скрипт в любую директорию на сервер пусть будет /var/www/...../data/www
Для apacha DocumentRoot для всех новых доменов/сайтов/вирт.хостов(как угодно называйте) указываем в конфиг файле ту же директорию, что выше /var/www/...../data/www
2) Создать директорию для хранения БД в нашем едином DocumentRoot для всех сайтов, к примеру /var/www/...../data/www/any_dir/%host%/%db_file% где %host% - имя домена/сайта, %db_file% - имя файла БД
3) На точке входе к скрипту проверять SERVER_NAME или HTTP_HOST и в зависимости от них инклудить БД, как я писал выше include(__DIR__."/any_dir/%host%/%db_file%").
Учитывайте, что HTTP_HOST может быть с www и без
Шаблон и панель управления(админка) одна для всех сайтов, только разные БД для каждого хоста, как я понял..
Все хосты назначьте на один(единый) DocumentRoot - и там держите скрипты(шаблон, админку) а сами БД в вашем случаи держите в некой директории, к примеру /var/www/DocumentRoot/data/%host%/db.php
Далее скриптом проверяем хост и в зависимости от него подключайте нужную БД.
include(__DIR__."/data/".$_SERVER['HTTP_HOST']."/db.php")
В итоге типа "мультидоменость" получиться, один скрипт на разных БД.
Всем спасибо, буду разбираться на досуге.
Там же все очень просто.. я уже давал ссылку выше.
Если свойство класса массив и надо получить доступ к индексу - $obj->{$<переменная>}[индекс]
пример:
class foo {
var $var1 = 1;
var $var2 = "str";
var $var3 = array('key1' => 'val1', 'key2' => 'val2');
}
$obj = new foo();
var_dump($obj);
foreach (array('var1', 'var2', 'var3', 'not_exists') as $property) {
if (property_exists($obj, $property)) {
// set
switch (true) {
case is_int($obj->$property): $obj->$property += 1000; break;
case is_string($obj->$property): $obj->$property .= "_set"; break;
case is_array($obj->$property): {
foreach ($obj->$property as $key => $value)
$obj->{$property}[$key] = $value."_set"; // к array надо так обращаться - $obj->{$<переменная>}[ключ]
}
break;
}
}
}
var_dump($obj);
Если правильно вас понимаю, http://php.net/manual/ru/language.variables.variable.php
А если я буду запрашивать не готовым HTTP запросом, а на голых сокетах?
тоже crossdomain.xml в корневом каталоге сервера нужен с правами попробуйте через WebSocket если конечно удаленный сервер поддерживает и разрешает кросс-доменные запросы.
Консольный WebKit типа http://phantomjs.org/ у меня даже где то скрипт был под выдачу Яши, на одном IP с не большой задержкой доходил до +300-ой станицы выдачи, правда не тестировал на каком этапе выскачет капча.
Под Яшу на нативном JS писать надо. сторонние библиотеки не подключить типа jquery - он както это вычисляет.