IIS URL重写后使用PHP获取URL参数


Fetching the URL parameters with PHP after IIS URL rewrite

我有一个PHP网站,

例如。http://www.test.com/rewrite-test/s/z2SZhBL

这是以前在Apache上发生的,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

因此,在"重写测试"文件夹中,我有一个index.php,它正在回显$_GET变量,并且没有返回get变量,它们都是空的。

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

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

这是最好的解决方案吗?

IIS管理器有一个很好的导入规则工具。请在此处查看完整的浏览:http://www.iis.net/learn/extensions/url-rewrite-module/importing-apache-modrewrite-rules

  1. 打开URL重写
  2. 在操作窗格中,单击导入规则
  3. 浏览到.htaccess文件(或复制/粘贴到)
  4. 查看转换后的规则
  5. 根据需要重命名规则
  6. 单击"应用链接"保存转换后的规则