.htaccess RewriteRule not working in subdirectory

后端 未结 2 1152
有刺的猬
有刺的猬 2020-12-10 14:04

I\'m programming the new version of my website and I\'m trying to get .htaccess to rewrite properly. My new site is stored here:

www.example.com/storage/new/         


        
相关标签:
2条回答
  • 2020-12-10 14:27

    The ^ means the start of the string. The RewriteRules will look at everything after example.com/ so you need to include storage/new/ in your pattern (or remove the ^).

    Also I'd probably want to add the NC flag so your pattern is matched without regards to case sensitivity (e.g. /Page/ or /page/ will both work). Which means you can change the [a-zA-Z0-9] pattern to just [a-z0-9]

    RewriteRule ^storage/new/welcome/$ index.php?action=welcome [L,NC]
    RewriteRule ^storage/new/page/([a-z0-9]+)/$ index.php?action=page&url=$1 [L,NC]
    RewriteRule ^storage/new/post/([a-z0-9]+)/$ index.php?action=post&url=$1 [L,NC]
    
    0 讨论(0)
  • 2020-12-10 14:41

    I had to e-mail my server's administrator for help and it turns out that .htaccess treats its own path as root; I simply removed the first / before the ^ in each rule. My final .htaccess file looks like this:

    RewriteEngine On
    
    RewriteRule ^welcome/$ index.php?action=welcome [L,QSA]
    RewriteRule ^page/(.*)/$ index.php?action=page&url=$1 [L,QSA]
    RewriteRule ^post/(.*)/$ index.php?action=post&url=$1 [L,QSA]
    
    0 讨论(0)
提交回复
热议问题