Using spaces in URL and .htaccess

2019-02-18 07:29发布

I wrote a local name/phone/address search engine for my city.

Users must be able to quick-access the results by going to either of these urls:

  1. search by number
  2. search by lastname
  3. search by lastname and first name

This is my current .htaccess config:

# Smart links
RewriteRule ^([0-9]+)$ /html/index.php?phone=$1 [QSA,L]
RewriteRule ^([A-Za-z-]+)$ /html/index.php?lastname=$1 [QSA,L]
RewriteRule ^([A-Za-z-]+)/([A-Za-z-]+)$ /html/index.php?lastname=$1&name=$2 [QSA,L]

That works pretty well, except if the user includes a space in the lastname and/or first name. Also, no numbers can be used when searching for names.

Any ideas on how to allow spaces in the url? Thanks!

2条回答
2楼-- · 2019-02-18 07:47
RewriteRule ^([A-Za-z-\s]+)/([A-Za-z-\s]+)$ /index.php?lastname=$1&name=$2 [QSA,L]

The \s will take care of blank spaces.

查看更多
等我变得足够好
3楼-- · 2019-02-18 07:59

Can you try this? ([a-z-\s]+)

RewriteRule ^([0-9]+)$ /html/index.php?phone=$1 [QSA,L]
RewriteRule ^([A-Za-z-\s]+)$ /html/index.php?lastname=$1 [QSA,L]
RewriteRule ^([A-Za-z-\s]+)/([A-Za-z-\s]+)$ /html/index.php?lastname=$1&name=$2 [QSA,L]
查看更多
登录 后发表回答