Переписать чпу под nginx

verfaa

Профессор
Регистрация
29 Янв 2007
Сообщения
416
Реакции
49
Перенес сайт на новый сервер, на котором установлен только nginx (без apache) соответственно правила в .htaccess перестали работать. Подскажите как переписать правило
Код:
RewriteEngine On
RewriteRule ^user/([^/\.]+)/?$ viewprofile.php?login=$1 [L,QSA]

для nginx, и куда его потом прописывать, в nginx.conf в блок location / { } домена?
 
Код:
# nginx configuration
location /user {
  rewrite ^/user/([^/\.]+)/?$ /viewprofile.php?login=$1 break;
}
в секцию server {} конфигурационного файла nginx
ну и да, тыцкните Для просмотра ссылки Войди или Зарегистрируйся
 
И ещё вопрос подобного плана: в папке лежит .htaccess такого содержания
Код:
php_flag engine off
т.е. запрещает выполнение всех php скриптов в этой папке. Но т.к. .htaccess у меня не работает скрипты выполняются.
Как мне в nginx прописать правило, чтобы в папке images и всех папках внутри папки images (картинки разложены по папкам 1, 2, 3, 4...) было запрещено выполнение любых php скриптов?

Конвентеры htaccess to nginx не помогают - выдают location / { }
 
Запрещаем выполнения PHP-файлов в папке uploads
Код:
location /uploads/ {
    location ~ .*\.(php)?$
    {
        deny all;
    }
}
 
swdns, такой код запретит выполнение php кода только в папке uploads или и во всех вложенных папках тоже? И ещё, может паранойю, но этот код запретит выполнение php кода файлам с расширением php. А если хакеру к примеру каким-то образом все же удалось впихнуть шелл или ещё какую гадость с другим расширением, тогда как? Наверное нужно запретить выполняться php в файлах с любым расширением.

Не работают новые реврайты, пытался и так
Код:
location /user {
  rewrite ^/user/([^/\.]+)/?$ /viewprofile.php?login=$1 break;
}
и так
Код:
location ~* /user {
  rewrite ^/user/([^/\.]+)/?$ /viewprofile.php?login=$1 break;
}

Выдает ошибку
nginx error!
The page you are looking for is not found.

Это при том, что Для просмотра ссылки Войди или Зарегистрируйся нормально грузится
Где ошибка?

Короче, для преобразования ссылки Для просмотра ссылки Войди или Зарегистрируйся в ссылку вида Для просмотра ссылки Войди или Зарегистрируйся
написал rewrite:
Код:
   location /user {
     rewrite ^/user/([^/\.]+)/?$ /viewprofile.php?login=$1 last;
   }

Правило работает и при переходе по ссылке Для просмотра ссылки Войди или Зарегистрируйся загружается анкета юзера. Только возникла новая проблема. Все ссылки на сайте теперь приобрели вид:

Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся

И соответственно перестали работать. Подскажите что исправить чтобы к ссылкам сайта не добавлялось user/mickee/ и они имели нормальный вид:

Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся

На сайте эти ссылки прописаны в меню как /index.php /news.php /star.php
 
Назад
Сверху