dongzhang5006
dongzhang5006
2016-02-09 16:11

使用.htaccess重写路径变量

已采纳

I'm creating which needs to communicate with some PC software. When PC software call script int needs to include Username and Relative Path to file on server that PHP need to read.

This is PHP in get.php:

$Username = $_GET['Username'];
$RelativePath = $_GET['Path'];

Non rewrited URL looks like this:

http://localhost/get.php?Username=C8WgtdmAytNhGcq&Path=folder/Test.txt

Now I want to rewrite it to:

http://localhost/get/C8WgtdmAytNhGcq/folder/Test.txt

But I have problem because Path contains slash.

How I can rewrite it with more than one folder in path?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • dongmei8511 dongmei8511 5年前

    You can use this rule in site root .htaccess:

    Options -MultiViews
    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^get/([^/]+)/(.+)$ get.php?Username=$1&Path=$2 [L,QSA,NC]
    

    .+ will match 1 or more of any character including /

    点赞 评论 复制链接分享