2013-12-18 4 views
1

я пытаюсь запустить свой сайт на Nginx так для фронта я ставлю некоторые конфигурации:Nginx как запустить сайт из другого каталога?

server { 
listen 80; 
server_name domain.com; 
root /var/www/domain.com/www; 
index index.php; 

# Use FastCGI with PHP-FPM for all things PHP 
location ~ .php$ { 
    fastcgi_pass 127.0.0.1:9000; 
    fastcgi_param SCRIPT_FILENAME /var/www/domain.com/www$fastcgi_script_name; 
    include fastcgi_params; 
} 
} 

И это нормально. Проблема в том, что я пытаюсь запустить область администрирования. Панель администратора находится в подкаталоге /var/www/domain.com/www/admin и файл index.php. В апача я просто поставить еще один .htaccess файл с правилом перезаписи:

RewriteEngine on 

RewriteRule !\.(js|ico|gif|jpg|png|css|htc)$ index.php 

и все в порядке, но как это сделать в Nginx?

Мой сайт построен с передней и административной зонами. Передняя панель запускается, когда вы переходите к domain.com/some_url.html, а область администрирования находится в домене.com/admin/some_url.html. Структура каталога нечто подобное:

site/ 
    /module/ 
    /public_html/ 
      index.php 
      /admin/ 
        index.php 

поэтому при запуске domain.com/admin/ все должно быть представлено /admin/index.php, но теперь, когда я иду в domain.com/admin/ админку отображаются, но когда я нажимаю некоторые ссылки, все trafik отправляются в файл index.php спереди.
С наилучшими пожеланиями!

ответ

2

Хорошо, я получаю сейчас,

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

server { 
listen 80; 
server_name domain.com; 
root /var/www/domain.com/www; 

    location /admin/ { 
     rewrite^/index.php?$request_uri; 
    } 

    # Use FastCGI with PHP-FPM for all things PHP 
    location ~ .php$ { 
     fastcgi_pass 127.0.0.1:9000; 
     fastcgi_param SCRIPT_FILENAME /var/www/domain.com/www$fastcgi_script_name; 
     include fastcgi_params; 
    } 
} 
+0

Спасибо вам answare. Да, я знаю, что в nginx нет файлов htaccess. Ваш код не помогает, потому что, когда я перехожу к domain.com/admin/some_link.html, запросы переходят на главную index.php no admin/index.php. Есть ли способ сделать это? Путь/admin/in следует рассматривать как каталог. Может быть, я должен создать субдомен для области администратора? С наилучшими пожеланиями. –

+0

Не думаю, что я понимаю ваш вопрос, если вы пытаетесь переписать, можете ли вы обновить вопрос, что вы хотите переписать и где вы хотите переписать примеры? –

+0

'index index.php;' не будет переписываться, он просто сообщает Nginx, какой файл загружается, когда кто-то обращается к папке. Пример: если вы наберете 'domain.com/admin /' в своем браузере, если вы установили nginx для загрузки 'index.php', Nginx будет загружать' domain.com/admin/index.php', если нет, Nginx будет show 'Forbidden' error. Чтобы переписать, вы должны использовать 'rewrite' not' index index.php; '. Обновите вопрос, я могу помочь. –

Смежные вопросы