Вы здесь

Как переместить сайт в субдиректорию хостинга?

0

Добрый день! Залил сайт на хостинг заказчика, он попросил залить в директорию drupal, я залил, он сделал редирект такой в htaccess в корень хостинга:

AddHandler application/x-httpd-php .php .php3 .php4 .htm .html .shtm .shtml
AddDefaultCharset UTF-8

Redirect 301 /index.html http://site.ru/drupal/

htaccess в папке с drupal НЕ трогался, родной!

Я добавил в settings.php

$base_url = 'http://site.ru/drupal';

Сайт не открывается, ошибка 500, при попытке запуска update.php

Parse error: syntax error, unexpected T_FUNCTION in /home/u186819/site.ru/www/drupal/sites/all/modules/l10n_update/l10n_update.admin.inc on line 100

Подозреваю, что проблема из-за www в пути файла.

Версия Drupal: 
7.x
Вопрос задан 23.10.2015 - 12:13
Аватар пользователя Sora
Sora
92
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/drupal/
RewriteRule ^(.*)$ http://site.ru/drupal/$1 [L,R=301]
Комментарий оставлен 23.10.2015 - 12:40

Так в минимуме Drupal 7: PHP 5.2.5 or higher

Комментарий оставлен 23.10.2015 - 14:06

А в логах ошибок апача на что указывает 500 ошибка?

Комментарий оставлен 23.10.2015 - 14:30

А, сорри, что-то это я попутал да. Но дело все равно в версии php
ибо строка 100 в l10n_update.admin.inc выглядит так

uasort($options, function ($a, $b) {

т.е. вторым параметром в uasort передается анонимная функция, которые появились в php 5.3

Комментарий оставлен 23.10.2015 - 14:47

Спасибо, дал задание их админу обновить php. У меня нет доступа. Как обновит отпишусь.

Комментарий оставлен 23.10.2015 - 14:51

Php обновили, все заработало, спасибо большое, но новый косяк - теперь адрес выглядит типа site.ru/drupal. Вот хочется сделать просто site.ru. В settings.php убрал base_url, сделал её в .htaccess (в директории drupal). Что ещё сделать не соображу.

Комментарий оставлен 24.10.2015 - 11:07

Ответы

1

Значит все порешали - за решение ошибки спасибо boatsman'у, обновили php до 5.4 все стало ок :)

Если сайт у нас в директории /drupal но мы хотим, чтобы в адресной строке было не http://site.ru/drupal а по людски просто http://site.ru сделал так:

В директории с друпал .htaccess не трогаем!
В settings.php расскоментить $base_url = 'http://site.ru';
И в корень хостинга добавить htaccess с таким содержимым:

Options -Indexes
Options +FollowSymLinks
RewriteEngine on
# Redirect all user to without WWW
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301]
# Serve Drupal 7 from sub directory in web root
RewriteRule ^$ drupal/index.php [L]
RewriteCond %{DOCUMENT_ROOT}/drupal%{REQUEST_URI} -f
RewriteRule .* drupal/$0 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* drupal/index.php?q=$0 [QSA]

Нашел тут - http://kahthong.com/2011/05/how-serve-drupal-sub-directory-web-root-0

Ответ дан 24.10.2015 - 23:06
Аватар пользователя Sora
Sora
92