LINUX.ORG.RU
ФорумAdmin

Настройка mod_rewrite под Apache и CentOS


0

1

Всем доброго времени суток. Ищу совета специалистов по своему вопросу. Ситуация такая: Есть сайт, требующий от сервера php 5.2.x, mysql 5+, mod_rewrite. Есть недавно приобретенный VPS-хостинг со всеми вышеуказаными требованиями. Задача: перенести сайт со старого хостинга на новый VPS-сервер. Привязки к домену нет. Сперва попробовал перенести сайт на свой обыкновенный старый хостинг дешевый. Перенес за полчаса, все чудесно работает. Начал переносить на VPS и тут началось... Сайт отказывается работать корректно. Страницы не формируются совсем. Вырывает один <div> из кода и весь код сгенереной страницы состоит из этого дива, без хеад, боди и всего прочего. Т.к. я знаю, что движок рабочий и вполне адекватный, я ищу проблему в сервере. Склоняюсь к мысли, что все-таки проблема в mod_rewrite. В httpd.conf строка LoadModule rewrite_module modules/mod_rewrite.so присутствует, везде выставлен AllowOverride All, в .htaccess:

RewriteEngine On
RewriteBase /

RewriteCond   %{REQUEST_URI}  !^/~3rdparty/fckeditor/.*
RewriteCond   %{REQUEST_URI}  !^/~uploads/.*
RewriteCond   %{REQUEST_URI}  !^/ajax.*
RewriteCond   %{REQUEST_URI}  !^/forum.*
RewriteCond   %{REQUEST_URI}  !^/~styles/.*
RewriteCond   %{REQUEST_URI}  !^/~php/.*
RewriteCond   %{REQUEST_URI}  !^/mt2/.*
RewriteCond   %{REQUEST_URI}  !^/robots.txt
RewriteRule ^([-a-zA-Z0-9_,.//]+)/?$ index.php [L]


в конфиге апача DocumentRoot /var/www/html
а сайт находится в папке /var/www/vhosts/mysitedomain.com/httpdocs. Есть отдельный конфиг файл httpd.include в папке /var/www/vhosts/mysitedomain.com/conf, там:

<VirtualHost 123.123.123.123:80>
	ServerName   mysitedomain.com:80
	SuexecUserGroup         user psacln
	ServerAdmin  "me@mail.com"
	DocumentRoot /var/www/vhosts/mysitedomain.com/httpdocs
	CustomLog  /var/www/vhosts/mysitedomain.com/statistics/logs/access_log plesklog
	ErrorLog  /var/www/vhosts/mysitedomain.com/statistics/logs/error_log</VirtualHost>
В итоге что имеем:
Сайт работает некорректно не работает, при удалении .htaccess не работает с тем же результатом, при написании в .htaccess всякой гадости типа «lkjflsf lskjldk» вылазит ошибка 500, т.е. .htaccess работает. Думаю проблема именно в mod_rewrite и системе vhost'ов, или, как вариант, не хаваются правила рирайта из .htaccess (но не понятно, как такое может происходить).

Прошу помочь, у кого есть какие-либо догадки, идеи, решения данной проблемы, может быть кто-то сталкивался с такой ситуацией. Задавайте любые вопросы, высказывайте предположения, если надо, скину полное содержимое конфигов. Заранее всем спасибо. С меня пиво за решение проблемы, обещаю.

ставь нгиныкс, лол ))

anonymous ()
Ответ на: комментарий от anonymous

в логах все залеплено ошибками форума, форумом заниматься буду позже. по теме есть такое: [Sun Jan 30 15:17:53 2011] [error] [client 67.195.112.229] File does not exist: /var/www/vhosts/mysitedomain.com/httpdocs/catalogue [Sun Jan 30 15:22:27 2011] [error] [client 178.93.10.116] File does not exist: /var/www/vhosts/mysitedomain.com/httpdocs/favicon.ico [Sun Jan 30 15:23:19 2011] [alert] [client 168.144.82.123] /var/www/vhosts/mysitedomain.com/httpdocs/.htaccess: Invalid command '123132dsf', perhaps misspelled or defined by a module not included in the server configuration --- это когда .htaccess проверял [Sun Jan 30 15:39:34 2011] [error] [client 95.167.189.17] File does not exist: /var/www/vhosts/mysitedomain.com/httpdocs/articles [Sun Jan 30 15:39:34 2011] [error] [client 95.167.189.17] File does not exist: /var/www/vhosts/mysitedomain.com/httpdocs/Fonarik_na_golovu_5_svetodiodov.html [Sun Jan 30 15:39:34 2011] [error] [client 95.167.189.17] File does not exist: /var/www/vhosts/mysitedomain.com/httpdocs/catalogue

не особо интересно...

manaux ()
Ответ на: комментарий от manaux

проблема решена. Раскоментировал и отредактировал следующую строку:

#
# Use name-based virtual hosting.
#
NameVirtualHost myhostingdomain.com:80
#
# NOTE: NameVirtualHost cannot be used without a port specifier 
# (e.g. :80) if mod_ssl is being used, due to the nature of the
# SSL protocol.
#

как и предполагал, проблема была в мелочи.

manaux ()
Ответ на: комментарий от manaux

проблема не решена. ввела в заблуждение установка денвера. кстати, установил денвер и запустил полноценно сайт за 20мин. Денвер автоматически настраивает VirtualHosts, потому плясать с бубном не пришлось. Сделал на VPS по аналогии с денвером настройку Vhosts, результат нулевой, сайт все так же не работает.

manaux ()
Ответ на: комментарий от manaux

mod_rewrite

mod_rewrite все-таки работает. Установил в ту же директорию вордпресс (предварительно убрав файлы моего сайта), сделал ЧПУ, прописал в .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
, рирайт работает без проблем. Значит остается грешить на правила рирайта в .htaccess или на имена папок, начинающиеся с «~» - ~uploads, ~mod, ~php, ~lib и т.п. Подскажите, пожалуйста, возможно в правилах рирайта какие-то очевидные ошибки и я их не вижу?
RewriteEngine on
RewriteBase /

RewriteCond   %{REQUEST_URI}  !^/~3rdparty/fckeditor/.*
RewriteCond   %{REQUEST_URI}  !^/~uploads/.*
RewriteCond   %{REQUEST_URI}  !^/ajax.*
RewriteCond   %{REQUEST_URI}  !^/forum.*
RewriteCond   %{REQUEST_URI}  !^/~styles/.*
RewriteCond   %{REQUEST_URI}  !^/~php/.*
RewriteCond   %{REQUEST_URI}  !^/mt2/.*
RewriteCond   %{REQUEST_URI}  !^/WMT-80DA816D-03C0-4816-9D0D-C187CF9A121D.HTML
RewriteCond   %{REQUEST_URI}  !^/yandex_67b5c32c1411635e.txt
RewriteCond   %{REQUEST_URI}  !^/google1b71ecfedcd51194.html
RewriteCond   %{REQUEST_URI}  !^/robots.txt
RewriteRule ^([-a-zA-Z0-9_,.//]+)/?$ index.php [L]

Options -Indexes
или есть какие-то конфликты апача с именами папок с символом «~» ?

п.с. <IfModule mod_rewrite.c> добавлял в .htaccess этот, никаких изменений не последовало.

manaux ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.