使用.htaccess使目录路由到php文件

时间:2013-05-09 00:34:21

标签: php .htaccess

我有一个处理数据导入的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

的网址

这可能听起来是开放式的,但是在没有破坏现有功能的情况下实现此的典型方法是什么?在根目录中使用.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

1 个答案:

答案 0 :(得分:2)

您正在寻找网址重写。你的根.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

我建议您阅读here。有点健谈,但深入。