Помогу с реврайтами nginx

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем Pavel_Pronskiy, 29 сен 2008.

  1. Pavel_Pronskiy

    Pavel_Pronskiy Писатель

    Регистр.:
    10 июн 2008
    Сообщения:
    8
    Симпатии:
    1
    Сабж, пишем сюда...
     
  2. porsche2

    porsche2

    Регистр.:
    18 ноя 2007
    Сообщения:
    667
    Симпатии:
    210
    Под Vivvo 3.5 можете сделать?

    htaccess выглядит так:
    :)
     
  3. Pavel_Pronskiy

    Pavel_Pronskiy Писатель

    Регистр.:
    10 июн 2008
    Сообщения:
    8
    Симпатии:
    1
    RewriteRule ^category/([0-9]+).html/?$ index.php?category=$1 [L]
    RewriteRule ^news/([0-9]+).html/?$ index.php?news=$1 [L]
    RewriteRule ^all/?(.*)$ index.php?view_all&$1 [L]
    RewriteRule ^print/([0-9]+).html/?$ index.php?news=$1&mode=print [L]
    RewriteRule ^comments/([0-9]+).html/?$ index.php?comments=$1 [L]
    RewriteRule ^author/([^<]+).html/?$ index.php?author=$1 [L]
    RewriteRule ^sitemap.xml$ plugins/sitemap/index.php [L]
    RewriteRule ^files/(.*)$ files.php?file=$1 [L]
    RewriteRule ^feed/?$ index.php?feed=$1 [L]


    --> что это? RewriteCond %{REQUEST_FILENAME} !-d
    --> что это? RewriteRule ^([^.]+)/?$ index.php?category_name=$1 [L]
    --> что это? RewriteCond %{REQUEST_FILENAME} !-f
    --> что это? RewriteRule ^([^<]+)/([^<]+).html/?$ index.php?news=$2 [L]
    --> это неправильно.


    server {
    listen 80;
    server_name domain.tld;
    root /home/domain/www.domain.tld/www;
    access_log /home/domain/www.domain.tld/logs/access.log nginx;
    error_log /home/domain/www.domain.tld/logs/error.log debug;


    location / {
    index index.php index.html index.htm;
    autoindex off;

    if (!-e $request_filename) {
    rewrite ^/category/([0-9]+).html$ /index.php?category=$1 last;
    ...
    rewrite ^feed/?$ /index.php?feed=$1 last;
    break;
    }


    }

    location /import/tmp/ {
    autoindex on;
    }

    location ~* ^.+\.(swf|gif|jpg|jpeg|png|js|css|xsl|txt|doc|rtf|pdf|rar|zip|gz|tgz|xls)$ {expires 1d;}
    location ~* ^.+\.(php|php3|php5|phtml|ico)$ {fastcgi_pass unix:/var/run/php-domain.tld.sock;}
    }
     
    porsche2 нравится это.
  4. santinor

    santinor Писатель

    Регистр.:
    31 май 2008
    Сообщения:
    5
    Симпатии:
    0
    Помогите плиз

    На сайте используются правила rewtire которые описаны в htaccess.
    Я сайт перенес на сервер где не apache а nginx+fastcgi
    В итоге теперь нужно как-то переписать правила с htaccess в конфиг nginx.
    Но я в этом не шарю. Первый раз сталкиваюсь с nginx.
    Помогите плиз.

    htaccess Для Joomla 1.0.15:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
    RewriteRule ^(content/|component/) index.php
     
  5. mod_Ex

    mod_Ex Создатель

    Регистр.:
    30 июл 2008
    Сообщения:
    10
    Симпатии:
    0
    Со статическими страницами понятно как сделать.

    А вот это что и для чего:
    Особенно это RewriteCond интересует что и для чего.

    Если это не прописать в nginx'e, то сайт все равно будет полнофункционально работать? Движок DLE.
     
  6. SiMM

    SiMM Создатель

    Регистр.:
    8 фев 2009
    Сообщения:
    41
    Симпатии:
    6
  7. CjGuSSa

    CjGuSSa

    Регистр.:
    9 фев 2009
    Сообщения:
    196
    Симпатии:
    45
    Интересует как сделать конфиг так, чтобы адреса вида index.php/member/login/ работали и чтобы убрать из этого адреса index.php
     
  8. Crees

    Crees Постоялец

    Регистр.:
    4 май 2008
    Сообщения:
    143
    Симпатии:
    13
    Помогите если сможете. Нужно редиректить любой садомен *.example.org на www.example.org но с исключением для www.example.org (чтобы не было loop)
     
  9. ask0n

    ask0n

    Регистр.:
    9 июн 2009
    Сообщения:
    227
    Симпатии:
    63
    Код:
    server {
             listen  80;
             server_name .example.org;
             rewrite ^ http://www.example.org$request_uri? permanent;
    }
    server {
            listen 80;
            server_name www.example.org;
            
            ну а дальше все что надо
    }
     
  10. nagual

    nagual Постоялец

    Регистр.:
    17 фев 2009
    Сообщения:
    65
    Симпатии:
    3
    location ~* ^.+\.(swf|gif|jpg|jpeg|png|js|css|xsl|txt|doc|rtf| pdf|rar|zip|gz|tgz|xls)$ {expires 1d;}

    Тут в скобках наверно следует добавить root

    location ~* ^.+\.(php|php3|php5|phtml|ico)$ {fastcgi_pass unix:/var/run/php-domain.tld.sock;}

    Здесь не хватает include /usr/local/nginx/conf/phpcgi.conf;

    Еще если есть загрузка на сайт файлов то для папки файлов следует запретить исполнение php скриптов.