dongzhang5006 2016-02-09 16:11
浏览 154
已采纳

使用.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 2016-02-09 16:15
    关注

    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 /

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?