合并2个变量htaccess重写

时间:2018-02-22 23:27:05

标签: php mod-rewrite url-rewriting

我的数据库IP和端口中有2个字段, 当从数据库中检索它们时,我将它们加入链接。

我正在使用mod重写我也删除.php所以如果server_info.php转向server_info。

我在我的页面上回应了这个链接

echo'<a href="'.URI.'/server_info/'.$IP.':'.$Port.'">'; 

我的链接的mod重写是

RewriteRule ^server_info/([^/][0-9]*)$ server_info.php?IP&Port=$1 [L]

但是当我点击它没有给出任何信息时

如果我像这样输入

http://localhost/server_info.php/70.85.442.13:70215

它有效

如果我像这样输入

http://localhost/server_info/70.85.442.13:70215 它不工作

2 个答案:

答案 0 :(得分:1)

我让它完美地运作

RewriteRule server_info/(.*):(.*) server_info.php?IP=$1&Port=$2

答案 1 :(得分:0)

您的echo(不起作用; /而不是?)和您输入的内容(有效; ?)不同。< / p>

echo'<a href="'.URI.'/server_info?'.$IP.':'.$Port.'">'; 

更新:如果由于某种原因,您不想更改echo中的网址,则需要在重写中修复正则表达式。现在它正在寻找任何非斜杠字符([^/])后跟零个或多个数字([0-9]*)。这与您的IP与. s,:和端口不匹配。你可能想要像

这样的东西
RewriteRule ^server_info/([\.0-9]*):([0-9]*)$ server_info.php?$1&Port=$2 [L]

[\.0-9]*将匹配$1中捕获的点和数字,即您的IP地址。 [0-9]*将在$2中捕获数字,即你的prot。

更新:请参阅:https://regex101.com/r/ylURsz/1