rereg

Рейтинг
59
Регистрация
20.02.2015
Muhandis:
Интересно, что в примерах в интернете присутствовало еще одно условие, которое снова делало эти директивы неработоспособными, а именно RewriteCond %{REQUEST_FILENAME} !-d, то есть проверка на то, не является ли путь директорией на сервере.

Как раз таки наоборот это условие упрощает в вашем случаи.


DirectorySlash Off
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -d # если это директория
RewriteRule ^([^/]+)$ /$1.html [L] # тогда открыть одноименный файл с директорией(без редиректа, он в принципе не к чему)
miketomlin:
Плюсую. Тоже об этом думал.

---------- Добавлено 03.10.2016 в 15:51 ----------

Только вот почему на vds работает? Хотя это могло быть раньше.

Возможно разные заголовки отдает веб-сервер Expire и Cache-control, и да, он браузер кеширует и редиректы. Надо чистить кеш. А скрипт, он рабочий вроде..

У ripn.net и по 80 порту whois есть http://www.ripn.net/nic/whois/


function get_whois_free_date($domain) {
$fp = fsockopen("www.ripn.net", 80, $errno, $errstr, 60);
if (!$fp) {
return "Connection fail: $errstr ($errno)\n";
}
$put = "POST /nic/whois/whois.cgi HTTP/1.1\r\nHost: www.ripn.net\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: ".strlen("Whois=$domain")."\r\n\r\nWhois=$domain";
fwrite($fp, $put);
$response = "";
while (!feof($fp)) {
$response .= fread($fp, 1024);
}
return preg_match("#paid-till:\s+([^\s]+)\s#", $response, $match) ? $match[1] : "domain not found";
}
//echo get_whois_free_date("test.ru");

Не пойму только как он закрыт 43 порт на исходящие соединения..

Да, одна директория со скриптом(шаблонами, админкой) для всех сайтов - 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%").

Учитывайте, что HTTP_HOST может быть с www и без

Шаблон и панель управления(админка) одна для всех сайтов, только разные БД для каждого хоста, как я понял..

Все хосты назначьте на один(единый) DocumentRoot - и там держите скрипты(шаблон, админку) а сами БД в вашем случаи держите в некой директории, к примеру /var/www/DocumentRoot/data/%host%/db.php

Далее скриптом проверяем хост и в зависимости от него подключайте нужную БД.

include(__DIR__."/data/".$_SERVER['HTTP_HOST']."/db.php")

В итоге типа "мультидоменость" получиться, один скрипт на разных БД.

DenisVS:
Всем спасибо, буду разбираться на досуге.

Там же все очень просто.. я уже давал ссылку выше.

Если свойство класса массив и надо получить доступ к индексу - $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);
Metal_Messiah:
А если я буду запрашивать не готовым HTTP запросом, а на голых сокетах?

тоже crossdomain.xml в корневом каталоге сервера нужен с правами попробуйте через WebSocket если конечно удаленный сервер поддерживает и разрешает кросс-доменные запросы.

Консольный WebKit типа http://phantomjs.org/ у меня даже где то скрипт был под выдачу Яши, на одном IP с не большой задержкой доходил до +300-ой станицы выдачи, правда не тестировал на каком этапе выскачет капча.

Под Яшу на нативном JS писать надо. сторонние библиотеки не подключить типа jquery - он както это вычисляет.

Всего: 485