0

我有一个处理数据导入的 PHP 系统(使用来自其他系统的 HTTP POST 请求)。我正在开发一个 SOAP Web 服务,基本上是作为现有功能的包装器。

目前,用户发送 CSV 文件的 POST 请求如下所示:

https://www.mysite.com.au/_pag/shop/ABC/?sec=import/orders&pag=new

我想稍微清理一下,并有一个类似于https://www.mysite.com.au/api的 URL

这听起来可能是开放式的,但是在破坏现有功能的情况下实现这一目标的典型方法是什么?.htaccess在根目录下使用?现有功能将查看 URL,因此它知道在哪里查找包含 javascripts 和 css 文件等资产。

我在想这样的事情会起作用,但我不完全确定如何实现它:

  • 创建一个新文件(例如 index2.php)并如上所述硬编码$_REQUEST和变量。$_GET
  • 使用.htaccess规则基本上将 /api 的任何内容路由到 index2.php。

以上听起来正确吗?什么样的.htaccess规则会出现这样的事情?

我的 .htaccess 看起来像:

RewriteEngine On
RewriteRule ^api$ phpinfo.php
ErrorDocument 404 /error.php

php_flag  display_errors                  on
php_flag  display_startup_errors          on
php_flag  file_uploads                    on
php_value error_reporting                 2047
php_value max_input_time                  60
php_value post_max_size                   8M
php_value upload_max_filesize             2M
4

1 回答 1

2

您正在寻找 URL 重写。您的根 .htaccess 可能具有以下内容:

RewriteEngine On    #once
RewriteRule    ^products/([0-9]+)/?$    product.php?product_id=$1

这会将到 site.com/products/5 的请求“重写”/路由到 site.com/product.php?product_id=5。

在你的情况下:

RewriteRule ^api$ _pag/shop/ABC/?sec=import/orders&pag=new

我建议在此处阅读此内容。有点啰嗦但有深度。

于 2013-05-09T00:46:11.247 回答