Добрый день. Задали задачку перенести сайт на другой хостинг. Сайт на старом самописном движке, который работает только на php 5.4 и ниже. Сайт в итоге перенёсся нормально, но при клике на любую ссылку открывается главная страница. Я почитал, что это из за того, что не обрабатываются правила rewrite, которые были под apache в .htaccess.
Так как движок самописный, естественно готовых правил под nginx я не нашёл. Попробовал несколько онлайн конвертеров, но результат тот же. Не работают ссылки.
Сам я сисадмин и такого опыта не имею к сожалению :)
Вот правила из .htaccess (домен только заменил)
RewriteCond %{HTTP_HOST} ^mydomain.ru [NC]
RewriteRule ^(.*)$ http://www.mydomain.ru/$1 [L,R=301]
RewriteRule ^404/{0,1}$ index.php?module=sitemap [L]
RewriteRule ^adm/{0,1}$ admin.php [L]
RewriteRule ^adm/([a-zA-Z0-9_-]+)/{0,1}$ admin.php?module=$1&%{QUERY_STRING} [L]
RewriteRule ^adm/([a-zA-Z0-9_-]+)/([0-9]+)/{0,1}$ admin.php?module=$1&page=$2&%{QUERY_STRING} [L]
RewriteRule ^adm/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/{0,1}$ admin.php?module=$1&p1=$2 [L]
RewriteRule ^adm/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/{0,1}$ admin.php?module=$1&p1=$2&p2=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-zA-Z0-9_-]+).html/{0,1}$ index.php?module=static&p1=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)/{0,1}$ index.php?module=$1 [L,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/{0,1}$ index.php?module=$1&p1=$2 [L,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/{0,1}$ index.php?module=$1&p1=$2&p2=$3 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/{0,1}$ index.php?module=$1&p1=$2&p2=$3&p3=$4 [L]
Конвертер предлагает вот такой вариант, но он тоже не работает.
if ($http_host ~* "^mydomain.ru"){
rewrite ^(.*)$ http://www.mydomain.ru/$1 redirect;
}
rewrite "^/404/{0,1}$" /index.php?module=sitemap break;
rewrite "^/adm/{0,1}$" /admin.php break;
rewrite "^/adm/([a-zA-Z0-9_-]+)/{0,1}$" /admin.php?module=$1&$query_string break;
rewrite "^/adm/([a-zA-Z0-9_-]+)/([0-9]+)/{0,1}$" /admin.php?module=$1&page=$2&$query_string break;
rewrite "^/adm/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/{0,1}$" /admin.php?module=$1&p1=$2 break;
rewrite "^/adm/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/{0,1}$" /admin.php?module=$1&p1=$2&p2=$3 break;
if (!-e $request_filename){
rewrite "^/([a-zA-Z0-9_-]+).html/{0,1}$" /index.php?module=static&p1=$1 break;
}
if (!-e $request_filename){
rewrite "^/([a-zA-Z0-9_-]+)/{0,1}$" /index.php?module=$1 break;
}
rewrite "^/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/{0,1}$" /index.php?module=$1&p1=$2 break;
rewrite "^/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/{0,1}$" /index.php?module=$1&p1=$2&p2=$3 break;
rewrite "^/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/{0,1}$" /index.php?module=$1&p1=$2&p2=$3&p3=$4 break;
Можно как-то заставить эти ЧПУ ссылки работать?