rewrite rules for nginx and Codeigniter











up vote
1
down vote

favorite












I have implemented a php application in codeigniter and now want to deploy it to the nginx server. Before deploying I checked my nignx configuration on my localhost using MAMP server. It is working correctly. But, this configuration is not working on the live server. As a beginner in nginx, I am not understanding where is the mistake here. In live server, I can not write in the main nginx.conf file. I have a separate configuration file like "abc" for my application "abc". And all my application files are under "abc/xyz" directory. Here is my sample confuguration,



location /abc {
root /srv/www/htdocs/apps/;

index index.html index.htm index.php;


location /xyz {
try_files $uri $uri/ /abc/xyz/index.php;
}

location ~ .php(/(w+))*$ {
try_files $uri =404;
rewrite (.+).php(/(w+))*$ $1.php break;

include /etc/nginx/fastcgi_params;

fastcgi_index index.php;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}


}



Here, I can see my welcome page https://myapplication/abc/xyz. But if I want to navigate other pages like https://myapplication/abc/xyz/other_pages, it is showing "404 Page not found". I have checked the other solutions but none of them is not working in this case. Thanks in advance for the help!










share|improve this question


























    up vote
    1
    down vote

    favorite












    I have implemented a php application in codeigniter and now want to deploy it to the nginx server. Before deploying I checked my nignx configuration on my localhost using MAMP server. It is working correctly. But, this configuration is not working on the live server. As a beginner in nginx, I am not understanding where is the mistake here. In live server, I can not write in the main nginx.conf file. I have a separate configuration file like "abc" for my application "abc". And all my application files are under "abc/xyz" directory. Here is my sample confuguration,



    location /abc {
    root /srv/www/htdocs/apps/;

    index index.html index.htm index.php;


    location /xyz {
    try_files $uri $uri/ /abc/xyz/index.php;
    }

    location ~ .php(/(w+))*$ {
    try_files $uri =404;
    rewrite (.+).php(/(w+))*$ $1.php break;

    include /etc/nginx/fastcgi_params;

    fastcgi_index index.php;
    fastcgi_pass unix:/var/run/php-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }


    }



    Here, I can see my welcome page https://myapplication/abc/xyz. But if I want to navigate other pages like https://myapplication/abc/xyz/other_pages, it is showing "404 Page not found". I have checked the other solutions but none of them is not working in this case. Thanks in advance for the help!










    share|improve this question
























      up vote
      1
      down vote

      favorite









      up vote
      1
      down vote

      favorite











      I have implemented a php application in codeigniter and now want to deploy it to the nginx server. Before deploying I checked my nignx configuration on my localhost using MAMP server. It is working correctly. But, this configuration is not working on the live server. As a beginner in nginx, I am not understanding where is the mistake here. In live server, I can not write in the main nginx.conf file. I have a separate configuration file like "abc" for my application "abc". And all my application files are under "abc/xyz" directory. Here is my sample confuguration,



      location /abc {
      root /srv/www/htdocs/apps/;

      index index.html index.htm index.php;


      location /xyz {
      try_files $uri $uri/ /abc/xyz/index.php;
      }

      location ~ .php(/(w+))*$ {
      try_files $uri =404;
      rewrite (.+).php(/(w+))*$ $1.php break;

      include /etc/nginx/fastcgi_params;

      fastcgi_index index.php;
      fastcgi_pass unix:/var/run/php-fpm.sock;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      }


      }



      Here, I can see my welcome page https://myapplication/abc/xyz. But if I want to navigate other pages like https://myapplication/abc/xyz/other_pages, it is showing "404 Page not found". I have checked the other solutions but none of them is not working in this case. Thanks in advance for the help!










      share|improve this question













      I have implemented a php application in codeigniter and now want to deploy it to the nginx server. Before deploying I checked my nignx configuration on my localhost using MAMP server. It is working correctly. But, this configuration is not working on the live server. As a beginner in nginx, I am not understanding where is the mistake here. In live server, I can not write in the main nginx.conf file. I have a separate configuration file like "abc" for my application "abc". And all my application files are under "abc/xyz" directory. Here is my sample confuguration,



      location /abc {
      root /srv/www/htdocs/apps/;

      index index.html index.htm index.php;


      location /xyz {
      try_files $uri $uri/ /abc/xyz/index.php;
      }

      location ~ .php(/(w+))*$ {
      try_files $uri =404;
      rewrite (.+).php(/(w+))*$ $1.php break;

      include /etc/nginx/fastcgi_params;

      fastcgi_index index.php;
      fastcgi_pass unix:/var/run/php-fpm.sock;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      }


      }



      Here, I can see my welcome page https://myapplication/abc/xyz. But if I want to navigate other pages like https://myapplication/abc/xyz/other_pages, it is showing "404 Page not found". I have checked the other solutions but none of them is not working in this case. Thanks in advance for the help!







      nginx codeigniter-3 nginx-location nginx-config






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 22 at 14:08









      Mahbub

      10011




      10011
























          1 Answer
          1






          active

          oldest

          votes

















          up vote
          0
          down vote













          The location /xyz block is nested within the location /abc block. The nested block is required to precess URIs with a prefix of /abc/xyz.



          If there are other regular expression location blocks surrounding your location /abc block, you should use the^~` modifier.



          For example:



          location ^~ /abc {
          ...
          location /abc/xyz {
          ...
          }
          ...
          }


          See this document for more.






          share|improve this answer





















            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53432779%2frewrite-rules-for-nginx-and-codeigniter%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            0
            down vote













            The location /xyz block is nested within the location /abc block. The nested block is required to precess URIs with a prefix of /abc/xyz.



            If there are other regular expression location blocks surrounding your location /abc block, you should use the^~` modifier.



            For example:



            location ^~ /abc {
            ...
            location /abc/xyz {
            ...
            }
            ...
            }


            See this document for more.






            share|improve this answer

























              up vote
              0
              down vote













              The location /xyz block is nested within the location /abc block. The nested block is required to precess URIs with a prefix of /abc/xyz.



              If there are other regular expression location blocks surrounding your location /abc block, you should use the^~` modifier.



              For example:



              location ^~ /abc {
              ...
              location /abc/xyz {
              ...
              }
              ...
              }


              See this document for more.






              share|improve this answer























                up vote
                0
                down vote










                up vote
                0
                down vote









                The location /xyz block is nested within the location /abc block. The nested block is required to precess URIs with a prefix of /abc/xyz.



                If there are other regular expression location blocks surrounding your location /abc block, you should use the^~` modifier.



                For example:



                location ^~ /abc {
                ...
                location /abc/xyz {
                ...
                }
                ...
                }


                See this document for more.






                share|improve this answer












                The location /xyz block is nested within the location /abc block. The nested block is required to precess URIs with a prefix of /abc/xyz.



                If there are other regular expression location blocks surrounding your location /abc block, you should use the^~` modifier.



                For example:



                location ^~ /abc {
                ...
                location /abc/xyz {
                ...
                }
                ...
                }


                See this document for more.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 22 at 15:32









                Richard Smith

                19.2k32137




                19.2k32137






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53432779%2frewrite-rules-for-nginx-and-codeigniter%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    What visual should I use to simply compare current year value vs last year in Power BI desktop

                    Alexandru Averescu

                    Trompette piccolo