php - 在 IIS URL 重写后用 PHP 获取 URL 参数

我有一个 PHP 网站,

例如 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

所以在“rewrite-test”文件夹中我有一个 index.php,它正在呼应 $_GET variables 并且没有返回的 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. 在操作 Pane 中,点击导入规则
  3. 浏览到您的 .htaccess 文件(或复制/粘贴)
  4. 查看转换后的规则
  5. 根据需要重命名规则
  6. 点击应用链接保存转换后的规则

https://stackoverflow.com/questions/33548385/

相关文章:

android - RecyclerView 不显示任何图像

android - 我可以预加载 Animation Drawable 吗?

javascript - JS 闭包和函数参数

amazon-web-services - AWS CLI 工具 - 无法从 S3 递归下载

sql-server - 动态透视多列

amazon-web-services - spark-ec2 --copy-aws-credent

Python - sys.stderr 未保存到 .txt 或 .log

python - NumPy 或 SciPy 计算加权中位数

email - 更改 TFS 2015 电子邮件警报中的主题

python - 以 CSR/COO 格式为存储在 Pandas DataFrame 中的分类数据的