RewriteCond to exclude a path not working

前端 未结 1 1296
梦如初夏
梦如初夏 2021-01-15 12:24

I want this URL:

http://www.example.com/path/antyhing

to NOT be redirected.

Here\'s what I have which is not working:



        
相关标签:
1条回答
  • 2021-01-15 13:06

    Can you replace your last rule with this:

    Options +FollowSymLinks -MultiViews
    # Turn mod_rewrite on
    RewriteEngine On
    RewriteBase /
    
    # Check if mobile=1 is set and set cookie 'mobile' equal to 1
    RewriteCond %{QUERY_STRING} (^|&)mobile=1(&|$)
    RewriteRule ^ - [CO=mobile:1:%{HTTP_HOST}]
    
    # Check if mobile=0 is set and set cookie 'mobile' equal to 0
    RewriteCond %{QUERY_STRING} (^|&)mobile=0(&|$)
    RewriteRule ^ - [CO=mobile:0:%{HTTP_HOST}]
    
    # Skip next rule if mobile=0 [OR] if it's a file [OR] if /path/
    RewriteCond %{QUERY_STRING} (^|&)mobile=0(&|$) [OR]
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_URI} ^.*/path/.*$
    RewriteRule ^ - [S=1]
    
    # Check if this looks like a mobile device
    RewriteCond %{HTTP_PROFILE}       !^$ [OR]
    RewriteCond %{HTTP_X_WAP_PROFILE} !^$ [OR]
    RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
    # Check if we're not already on the mobile site
    RewriteCond %{HTTP_HOST}          !^m\.
    # Check to make sure we haven't set the cookie before
    RewriteCond %{HTTP_COOKIE}        !mobile=0(;|$)
    # Don't redirect "path" pages
    RewriteCond %{REQUEST_URI} !^.*/path/.*$ [NC]
    # Now redirect to the mobile site
    RewriteRule ^ http://m.example.com/ [R,L,NC]
    

    Edit by OP: The only problem was coming from the %{REQUEST_URI} that for a reason that I don't understand only works against ^.*/path/.*$

    0 讨论(0)
提交回复
热议问题