<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.Stylwiadomocie-mail17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="PL" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">Hello, I have few wordpress instalations on one vhost:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        location /pl {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                try_files $uri $uri/ /pl/index.php?$args;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        }<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        # Add trailing slash to */wp-admin requests.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        rewrite /pl/wp-admin$ $scheme://$host$uri/index.php permanent;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        location /en {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                try_files $uri $uri/ /en/index.php?$args;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        }<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        # Add trailing slash to */wp-admin requests.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        rewrite /en/wp-admin$ $scheme://$host$uri/index.php permanent;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        location /dev {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                try_files $uri $uri/ /en/index.php?$args;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        }<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        # Add trailing slash to */wp-admin requests.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        rewrite /dev/wp-admin$ $scheme://$host$uri/index.php permanent;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        set $user_login wiki;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        include /etc/nginx/templates.d/wordpress-subdirectory.conf;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">File /etc/nginx/templates.d/wordpress-subdirectory.conf has:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">location = /favicon.ico {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        log_not_found off;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        access_log off;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">location = /robots.txt {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        allow all;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        log_not_found off;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        access_log off;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># Keep logging the requests to parse later (or to pass to firewall utilities such as fail2ban)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">location ~ /\. {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        deny all;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># Deny access to any files with a .php extension in the uploads directory<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># Works in sub-directory installs and also in multisite network<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># Keep logging the requests to parse later (or to pass to firewall utilities such as fail2ban)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">location ~* /(?:uploads|files)/.*\.php$ {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        deny all;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># Directives to send expires headers and turn off 404 error logging.<o:p></o:p></span></p>
<p class="MsoNormal">location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {<o:p></o:p></p>
<p class="MsoNormal">        <span lang="EN-US">access_log off; log_not_found off; expires max;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">location ~ [^/]\.php(/|$) {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        fastcgi_split_path_info ^(.+?\.php)(/.*)$;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        if (!-f $document_root$fastcgi_script_name) {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                return 404;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        }<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        if ( $wordpress_norun_subdir ) {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                return 403;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        }<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        include /etc/nginx/fastcgi_params;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        fastcgi_index index.php;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        fastcgi_pass   unix:/var/run/$user_login.php-fpm.socket;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        fastcgi_param REMOTE_USER $remote_user;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">In location ~ [^/]\.php(/|$) I have:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        if ( $wordpress_norun_subdir ) {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                return 403;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        </span>}<o:p></o:p></p>
<p class="MsoNormal">. <span lang="EN-US">$wordpress_norun_subdir is map: <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">map $uri $wordpress_norun {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        default                                 1;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        /index.php                              0;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        /wp-login.php                           0;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        /wp-blog-header.php                     0;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        /wp-cron.php                            0;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        /wp-includes/js/tinymce/wp-mce-help.php 0;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">…<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        /xmlrpc.php                             0;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        /wp-load.php                            0;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        /wp-settings.php                        0;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        /wp-admin/about.php                     0;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        /wp-admin/admin-ajax.php                0;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        /wp-admin/admin-footer.php              0;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        /wp-admin/admin-functions.php           0;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        /wp-admin/admin-header.php              0;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        /wp-admin/admin.php                     0;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        /wp-admin/admin-post.php                0;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">…<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">This map works fine when I run wordpress on root directory, but if I have wordpress in subdir it doesn’t. I can change paths in map to: ~/.*/index.php, but this can run files: /index.php, /wp-admin/index.php, /any_hacker_stuff/index.php.
 Of course, I don’t want allow run this last file ;) I thinks I can change location /en to /en(.*) and set $wordpress_path $1; and change $uri to $wordpress_path, but on location /en(.*) wordpress friendly URL don’t works.
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:PL">-- <o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:PL">Pozdrawiam,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:PL"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:PL">Marcin Janowski<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:PL">Specjalista ds. Systemów IT<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:PL">Centrum Przetwarzania Danych - Lublin<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:PL">Dział Rozwiązań Systemowych
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:PL"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:PL">T: + 48 81 535 30 00, w. 366<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:PL">e-mail: marcin.janowski@assecobs.pl<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
<br>
<hr>
<font face="Verdana" color="Gray" size="1"><br>
Powyższa korespondencja przeznaczona jest wyłącznie dla osoby lub podmiotu, do którego jest adresowana i może zawierać informacje o charakterze poufnym lub zastrzeżonym. Nieuprawnione wykorzystanie informacji zawartych w wiadomości e-mail przez osobę lub podmiot
 nie będący jej adresatem jest zabronione odpowiednimi przepisami prawa. Odbiorca korespondencji, który otrzymał ją omyłkowo, proszony jest o niezwłoczne zawiadomienie nadawcy drogą elektroniczną lub telefonicznie i usunięcie tej treści z poczty elektronicznej.
 Dziękujemy. Asseco Business Solutions S.A.<br>
</font><br>
<hr>
<font face="Verdana" color="Green" size="1"><br>
Weź pod uwagę ochronę środowiska, zanim wydrukujesz ten e-mail.<br>
</font><br>
<hr>
<font face="Verdana" color="Gray" size="1"><br>
This information is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Unauthorized use of this information by person or entity other than the intended recipient is prohibited by law. If
 you received this by mistake, please immediately contact the sender by e-mail or by telephone and delete this information from any computer. Thank you. Asseco Business Solutions S.A.<br>
</font><br>
<hr>
<font face="Verdana" color="Green" size="1"><br>
Please consider your environmental responsibility before printing this e-mail.<br>
</font>
</body>
</html>