2015-11-05 70 views
2

我有一个PHP网站,在IIS重写后用PHP获取URL参数

http://www.test.com/rewrite-test/s/z2SZhBL

这是以前在Apache上有一个重写规则,使用$_GET['id']来捕获“z2SZhBL”。

RewriteEngine on 
RewriteRule ^([^/\.]+)/?$ /index.php?id=$1 [L] 

我需要将此网站移到IIS上,我需要获取URL重写规则。我试过这些例子。

http://www.iis.net/learn/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module

所以在文件夹中“改写测试”我这是呼应了$_GET变量的index.php文件,也没有回来,他们都是空的GET变量。

我可以使用此解决方法获取变量。

$params = explode("/", $_SERVER['HTTP_X_ORIGINAL_URL']); 
print_r($params); 

这是最佳解决方案吗?

+0

你只是问一个意见? – davejal

+1

嗯,我想知道如果这是重写后检索变量的正确方法,它感觉就像我所做的可能是一个黑客/变通办法应该变量不能通过$ _GET获得,也许我所做的是正确。 – davesherlock

+0

只需将您的.htaccess文件导入到您的URL重写器。这个向导有一个小链接。所有相同的规则和技巧都可以使用。 IIS会捕获并重写它到'index.php?id = $ 1',这样你就可以继续使用'$ _GET'。 – Twisty

回答

0

IIS管理器有一个很好的导入规则工具。查看全部穿行在这里:http://www.iis.net/learn/extensions/url-rewrite-module/importing-apache-modrewrite-rules

  1. 打开URL重写
  2. 在操作窗格中,单击导入规则
  3. 浏览到您的.htaccess文件(或者复制/粘贴它们)
  4. 回顾转换规则
  5. 重命名为所需
  6. 单击应用链接保存转换规则的规则
+0

是的,我发现非常有用,谢谢。 – davesherlock

+0

我的问题是关于如何在设置规则后如何获取变量,此刻我正在使用 $ params = explode(“/”,$ _SERVER ['HTTP_X_ORIGINAL_URL']); – davesherlock

+0

如果规则工作正常,您可以像以前那样使用'$ _GET ['id']'。两者都可以工作,就像很多工作来爆炸URL一样。另外,你还没有索引你获得的数据。 – Twisty