htaccess - URL 'folders' always show 'folders/?link=folders'









up vote
1
down vote

favorite












I'm sorry if my question is unclear. I rewrite rule url by htaccess and it worked. So i have a problem when i try to link path of the existing folder.



My problem:



Redirect url: 'http://localhost/folders' 
But it display: 'http://localhost/folders/?link=folder'


So, I don't want it show '?link=folder'. It not show '?link=folder' with Redirect url: 'http://localhost/folders'



My htaccess:



RewriteEngine On

RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d

RewriteRule ^$ index.php [L]

RewriteRule ^([^/]*)/$ index.php?link=$1&%QUERY_STRING [L]
RewriteRule ^([^/]*)/([^/]*)/$ index.php?link=$1&action=$2&%QUERY_STRING [L]
RewriteRule ^([^/]*)/([0-9]+)/([^/]*)/$ index.php?link=$1&id=$2&action=$3&%QUERY_STRING [L]

RewriteRule ^([^/]*)$ index.php?link=$1&%QUERY_STRING [L]
RewriteRule ^([^/]*)/([^/]*)$ index.php?link=$1&action=$2&%QUERY_STRING [L]
RewriteRule ^([^/]*)/([0-9]+)/([^/]*)$ index.php?link=$1&id=$2&action=$3&%QUERY_STRING [L]

RewriteRule !^(public/*|folder/*|index.php) [NC,F]


Please, someone tell me how to fix. I'm sorry if my english is bad.










share|improve this question

























    up vote
    1
    down vote

    favorite












    I'm sorry if my question is unclear. I rewrite rule url by htaccess and it worked. So i have a problem when i try to link path of the existing folder.



    My problem:



    Redirect url: 'http://localhost/folders' 
    But it display: 'http://localhost/folders/?link=folder'


    So, I don't want it show '?link=folder'. It not show '?link=folder' with Redirect url: 'http://localhost/folders'



    My htaccess:



    RewriteEngine On

    RewriteCond %REQUEST_FILENAME !-f
    RewriteCond %REQUEST_FILENAME !-d

    RewriteRule ^$ index.php [L]

    RewriteRule ^([^/]*)/$ index.php?link=$1&%QUERY_STRING [L]
    RewriteRule ^([^/]*)/([^/]*)/$ index.php?link=$1&action=$2&%QUERY_STRING [L]
    RewriteRule ^([^/]*)/([0-9]+)/([^/]*)/$ index.php?link=$1&id=$2&action=$3&%QUERY_STRING [L]

    RewriteRule ^([^/]*)$ index.php?link=$1&%QUERY_STRING [L]
    RewriteRule ^([^/]*)/([^/]*)$ index.php?link=$1&action=$2&%QUERY_STRING [L]
    RewriteRule ^([^/]*)/([0-9]+)/([^/]*)$ index.php?link=$1&id=$2&action=$3&%QUERY_STRING [L]

    RewriteRule !^(public/*|folder/*|index.php) [NC,F]


    Please, someone tell me how to fix. I'm sorry if my english is bad.










    share|improve this question























      up vote
      1
      down vote

      favorite









      up vote
      1
      down vote

      favorite











      I'm sorry if my question is unclear. I rewrite rule url by htaccess and it worked. So i have a problem when i try to link path of the existing folder.



      My problem:



      Redirect url: 'http://localhost/folders' 
      But it display: 'http://localhost/folders/?link=folder'


      So, I don't want it show '?link=folder'. It not show '?link=folder' with Redirect url: 'http://localhost/folders'



      My htaccess:



      RewriteEngine On

      RewriteCond %REQUEST_FILENAME !-f
      RewriteCond %REQUEST_FILENAME !-d

      RewriteRule ^$ index.php [L]

      RewriteRule ^([^/]*)/$ index.php?link=$1&%QUERY_STRING [L]
      RewriteRule ^([^/]*)/([^/]*)/$ index.php?link=$1&action=$2&%QUERY_STRING [L]
      RewriteRule ^([^/]*)/([0-9]+)/([^/]*)/$ index.php?link=$1&id=$2&action=$3&%QUERY_STRING [L]

      RewriteRule ^([^/]*)$ index.php?link=$1&%QUERY_STRING [L]
      RewriteRule ^([^/]*)/([^/]*)$ index.php?link=$1&action=$2&%QUERY_STRING [L]
      RewriteRule ^([^/]*)/([0-9]+)/([^/]*)$ index.php?link=$1&id=$2&action=$3&%QUERY_STRING [L]

      RewriteRule !^(public/*|folder/*|index.php) [NC,F]


      Please, someone tell me how to fix. I'm sorry if my english is bad.










      share|improve this question













      I'm sorry if my question is unclear. I rewrite rule url by htaccess and it worked. So i have a problem when i try to link path of the existing folder.



      My problem:



      Redirect url: 'http://localhost/folders' 
      But it display: 'http://localhost/folders/?link=folder'


      So, I don't want it show '?link=folder'. It not show '?link=folder' with Redirect url: 'http://localhost/folders'



      My htaccess:



      RewriteEngine On

      RewriteCond %REQUEST_FILENAME !-f
      RewriteCond %REQUEST_FILENAME !-d

      RewriteRule ^$ index.php [L]

      RewriteRule ^([^/]*)/$ index.php?link=$1&%QUERY_STRING [L]
      RewriteRule ^([^/]*)/([^/]*)/$ index.php?link=$1&action=$2&%QUERY_STRING [L]
      RewriteRule ^([^/]*)/([0-9]+)/([^/]*)/$ index.php?link=$1&id=$2&action=$3&%QUERY_STRING [L]

      RewriteRule ^([^/]*)$ index.php?link=$1&%QUERY_STRING [L]
      RewriteRule ^([^/]*)/([^/]*)$ index.php?link=$1&action=$2&%QUERY_STRING [L]
      RewriteRule ^([^/]*)/([0-9]+)/([^/]*)$ index.php?link=$1&id=$2&action=$3&%QUERY_STRING [L]

      RewriteRule !^(public/*|folder/*|index.php) [NC,F]


      Please, someone tell me how to fix. I'm sorry if my english is bad.







      .htaccess






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 8 at 16:10









      Newbie

      62




      62






















          1 Answer
          1






          active

          oldest

          votes

















          up vote
          0
          down vote













          Your problem maybe to do with the DirectorySlash. If "folders" is a physical directory on the filesystem and you request http://localhost/folders (no trailing slash) then mod_dir "fixes" the URL by 301 redirecting to http://localhost/folders/ (with a trailing slash).



          This mod_dir behaviour conflicts with the following rule that appends the ?link=folders quesy string.




          RewriteRule ^([^/]*)$ index.php?link=$1&%QUERY_STRING [L]



          This "rewrite" will be turned into an external "redirect" by mod_dir.



          You can try preventing mod_dir from appending the trailing slash on directories with the following directive at the top of your .htaccess file:



          DirectorySlash Off


          However, you now need to manage all the trailing slashes yourself, which may not be trivial.



          However, instead of the above, I would simply include a trailing slash on the URL to begin with and only match URLs that have the trailing slash, rather than both (you are duplicating your directives).






          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%2f53211722%2fhtaccess-url-folders-always-show-folders-link-folders%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













            Your problem maybe to do with the DirectorySlash. If "folders" is a physical directory on the filesystem and you request http://localhost/folders (no trailing slash) then mod_dir "fixes" the URL by 301 redirecting to http://localhost/folders/ (with a trailing slash).



            This mod_dir behaviour conflicts with the following rule that appends the ?link=folders quesy string.




            RewriteRule ^([^/]*)$ index.php?link=$1&%QUERY_STRING [L]



            This "rewrite" will be turned into an external "redirect" by mod_dir.



            You can try preventing mod_dir from appending the trailing slash on directories with the following directive at the top of your .htaccess file:



            DirectorySlash Off


            However, you now need to manage all the trailing slashes yourself, which may not be trivial.



            However, instead of the above, I would simply include a trailing slash on the URL to begin with and only match URLs that have the trailing slash, rather than both (you are duplicating your directives).






            share|improve this answer
























              up vote
              0
              down vote













              Your problem maybe to do with the DirectorySlash. If "folders" is a physical directory on the filesystem and you request http://localhost/folders (no trailing slash) then mod_dir "fixes" the URL by 301 redirecting to http://localhost/folders/ (with a trailing slash).



              This mod_dir behaviour conflicts with the following rule that appends the ?link=folders quesy string.




              RewriteRule ^([^/]*)$ index.php?link=$1&%QUERY_STRING [L]



              This "rewrite" will be turned into an external "redirect" by mod_dir.



              You can try preventing mod_dir from appending the trailing slash on directories with the following directive at the top of your .htaccess file:



              DirectorySlash Off


              However, you now need to manage all the trailing slashes yourself, which may not be trivial.



              However, instead of the above, I would simply include a trailing slash on the URL to begin with and only match URLs that have the trailing slash, rather than both (you are duplicating your directives).






              share|improve this answer






















                up vote
                0
                down vote










                up vote
                0
                down vote









                Your problem maybe to do with the DirectorySlash. If "folders" is a physical directory on the filesystem and you request http://localhost/folders (no trailing slash) then mod_dir "fixes" the URL by 301 redirecting to http://localhost/folders/ (with a trailing slash).



                This mod_dir behaviour conflicts with the following rule that appends the ?link=folders quesy string.




                RewriteRule ^([^/]*)$ index.php?link=$1&%QUERY_STRING [L]



                This "rewrite" will be turned into an external "redirect" by mod_dir.



                You can try preventing mod_dir from appending the trailing slash on directories with the following directive at the top of your .htaccess file:



                DirectorySlash Off


                However, you now need to manage all the trailing slashes yourself, which may not be trivial.



                However, instead of the above, I would simply include a trailing slash on the URL to begin with and only match URLs that have the trailing slash, rather than both (you are duplicating your directives).






                share|improve this answer












                Your problem maybe to do with the DirectorySlash. If "folders" is a physical directory on the filesystem and you request http://localhost/folders (no trailing slash) then mod_dir "fixes" the URL by 301 redirecting to http://localhost/folders/ (with a trailing slash).



                This mod_dir behaviour conflicts with the following rule that appends the ?link=folders quesy string.




                RewriteRule ^([^/]*)$ index.php?link=$1&%QUERY_STRING [L]



                This "rewrite" will be turned into an external "redirect" by mod_dir.



                You can try preventing mod_dir from appending the trailing slash on directories with the following directive at the top of your .htaccess file:



                DirectorySlash Off


                However, you now need to manage all the trailing slashes yourself, which may not be trivial.



                However, instead of the above, I would simply include a trailing slash on the URL to begin with and only match URLs that have the trailing slash, rather than both (you are duplicating your directives).







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 8 at 18:36









                MrWhite

                11.9k33059




                11.9k33059



























                     

                    draft saved


                    draft discarded















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53211722%2fhtaccess-url-folders-always-show-folders-link-folders%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

                    𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

                    Edmonton

                    Crossroads (UK TV series)