Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex .htaccess URL重写跳过另一个/_Regex_.htaccess_Expression - Fatal编程技术网

Regex .htaccess URL重写跳过另一个/

Regex .htaccess URL重写跳过另一个/,regex,.htaccess,expression,Regex,.htaccess,Expression,我的.htaccess文件中有以下代码 RewriteEngine on RewriteRule ^thumbnail/(.*).png thumbnail.php?url=$1 [NC] 它所做的就是把 http://mydomain.com/thumbnail.php?url=http%3A%2F%2Fwww.example.com%2F 进入 但是当我在thumbnail.php文件中退出url变量时,它会返回 http:/www.example.com/NOThttp://www.e

我的.htaccess文件中有以下代码

RewriteEngine on
RewriteRule ^thumbnail/(.*).png thumbnail.php?url=$1 [NC]
它所做的就是把

http://mydomain.com/thumbnail.php?url=http%3A%2F%2Fwww.example.com%2F
进入

但是当我在
thumbnail.php
文件中退出
url
变量时,它会返回

http:/www.example.com/
NOT
http://www.example.com/


另一个
/
去了哪里?

因为
http://www.example.com/
是URI路径的一部分(而不是查询字符串的一部分),apache会自动规范化路径,从而删除多个连续的斜杠。例如,如果您试图转到:

http://www.mydomain.com/thumbnail/foo//////////////bar.png
然后打印出
url
的值,您将得到
foo/bar.png
,因为在处理管道中对URI进行mod_rewrite之前,额外的斜杠已经清除了

或者,您可以删除
http://
部分,并将其添加到重写中:

RewriteEngine on
RewriteRule ^thumbnail/(.*).png thumbnail.php?url=http://$1 [NC]
那么您的url就是:

http://www.mydomain.com/thumbnail/www.example.com%2F.png

当你打印出
url
的值时,你会得到
http://www.example.com/.png

因为
http://www.example.com/
是URI路径的一部分(而不是查询字符串的一部分),apache会自动规范化路径,从而删除多个连续的斜杠。例如,如果您试图转到:

http://www.mydomain.com/thumbnail/foo//////////////bar.png
然后打印出
url
的值,您将得到
foo/bar.png
,因为在处理管道中对URI进行mod_rewrite之前,额外的斜杠已经清除了

或者,您可以删除
http://
部分,并将其添加到重写中:

RewriteEngine on
RewriteRule ^thumbnail/(.*).png thumbnail.php?url=http://$1 [NC]
那么您的url就是:

http://www.mydomain.com/thumbnail/www.example.com%2F.png

当你打印出
url
的值时,你会得到
http://www.example.com/.png

您的意思是它将
../thumbnail/../code>转换为
../thumbnail.php?url=…
,而不是相反?您可能希望将
^thumbnail/(.*).png
替换为
^thumbnail/(.*)\.png
.png
->
\.png
)你的意思是它将
../thumbnail/../code>转换为
../thumbnail.php?url=../code>,而不是反过来?你可能想用
^thumbnail/.png/.png>
^thumbnail/.png
.png>->
->.png