Преобразование nginx в перезаписи Apache

Я пытаюсь настроить Symfony с существующего сайта на nginx. Моя локальная машина - это Apache, и это схема перенаправления на nginx. Как мне написать это с помощью RewriteRules?

location / {
               # try to serve file directly, fallback to rewrite
               try_files $uri @rewriteapp;
       }

       location @rewriteapp {
               # rewrite all to app.php
               rewrite ^(.*)$ /app.php/$1 last;
       }

       location ~ ^/(app|app_dev|config)\.php(/|$) {
               fastcgi_split_path_info ^(.+\.php)(/.*)$;
               include fastcgi_params;
               fastcgi_intercept_errors on;
               fastcgi_pass php_upstream; # Upstream on top of file
               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
               fastcgi_param HTTPS off;
       }

}
2
задан 22 August 2016 в 15:44
1 ответ
location / {
               # try to serve file directly, fallback to rewrite
               try_files $uri @rewriteapp;
       }

       location @rewriteapp {
               # rewrite all to app.php
               rewrite ^(.*)$ /app.php/$1 last;
       }

Первая часть, кажется, единственная переделка. Похоже, это можно было бы записать следующим образом, используя mod_rewrite на Apache в корневом файле .htaccess :

# Enable trailing pathname information (if not already)
AcceptPathInfo On

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /app.php/$0 [L]

Переписать внутренне все запросы, которые не отображаются на физические файлы или каталоги в / app. php / .

Поскольку здесь используется информация о конечном пути в URL ( / $ 0 ), вам необходимо убедиться, что сервер разрешает это, в противном случае вы сразу получите сообщение 404 Not Found. Однако обычно это включено по умолчанию (хотя это зависит от обработчика).

0
ответ дан 3 December 2019 в 14:22

Теги

Похожие вопросы