mod_rewrite with spaces in the urls

后端 未结 5 1969
野性不改
野性不改 2020-12-09 08:03

I need to set up some RewriteRules to redirect a URL which has a space in it. I\'ve tried this:

RewriteRule ^article/with%20spaces.html$ /article/without_spa         


        
相关标签:
5条回答
  • 2020-12-09 08:04

    If you want to avoid the complexity of escaping each space (e.g. if you plan to have this file automatically generated), you can simply use quotes:

    RewriteRule "^article/with spaces.html$" /article/without_spaces.html [R=301,L]
    

    Furthermore, these quotes can be used to encase any one expected argument:

    RewriteRule "^article/with spaces.html$" "/article/without_spaces.html" [R=301,L]
    
    0 讨论(0)
  • 2020-12-09 08:04
    RewriteRule ^article/with[\ |%2520]spaces.html$ /article/without_spaces.html [R=301,L]
    

    The first option replaces a space while the second replaces hard coded %20 in the url.

    0 讨论(0)
  • 2020-12-09 08:15

    Try putting a \ in front of your space to escape it.

    RewriteRule ^article/with\ spaces.html$ /article/without_spaces.html [R=301,L]
    
    0 讨论(0)
  • 2020-12-09 08:19

    Ah, I've found a solution: use the regex style to show a space:

    RewriteRule ^article/with\sspaces.html$ ...
    

    Though, I suspect that this would match all the other whitespace characters too (tabs, etc), but I don't think it's going to be much of a problem.

    0 讨论(0)
  • 2020-12-09 08:27

    You can just escape the space with a \

    RewriteRule ^article/with\ spaces.html$ /article/without_spaces.html [R=301,L]
    
    0 讨论(0)
提交回复
热议问题