Преобразование условия переписывания Apache htaccess в nginx - PullRequest
0 голосов
/ 02 февраля 2012

Я пытаюсь перенести это правило переписывания Apache для использования на веб-сервере nginx.

RewriteBase /srv/www/htdocs
RewriteCond %{REQUEST_URI} ^/(files.*)$
RewriteRule ^(.*)$ %1 [L]

Я не знаю, как решить эту проблему в nginx.conf. Кто-нибудь может помочь, пожалуйста?

Спасибо, Патрис

Ответы [ 3 ]

0 голосов
/ 02 февраля 2012

Это может быть проще:

if ( $uri ~ "^/(files.*)$") {
     rewrite ^/(.*)$ /$1 last;
}
0 голосов
/ 05 февраля 2012

Спасибо за ваши быстрые ответы! Наконец, я решил эту проблему аналогично предложению Сергея, но вложил его в условие.

location / {
    root   /srv/www/htdocs;

    # all under "/files/" breaks further processing
    location ~ ^/files(.*)$ {
        break;
    }

    # rewrite rules for all paths not under "/files/"
    if (!-e $request_filename) {
        rewrite ^/([^/\.]+)((\/?)(.*?))$ /process.php?id=$1&path=$2 last;
    }

}
0 голосов
/ 02 февраля 2012

Попробуйте это:

if ($uri ~ "^/(files.*)$"){
    set $rule_0 1$rule_0;
    set $bref_1 $1;
}
if ($rule_0 = "1"){
    rewrite ^/(.*)$ /$bref_1 last;
}

Источник: http://www.anilcetin.com/convert-apache-htaccess-to-nginx/

...