我正在嘗試編寫一個簡單的RESTful php應用程序。我正在嘗試編寫一個index.php路由器。PHP Rest API,重定向POST路由器
的.htaccess文件我現在有是
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule api/^(.*)$ api/index.php?_url=/$1 [QSA,L]
</IfModule>
我加RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
強制結尾的斜線所看到here。
調用var_dump($_POST);
或var_dump($_GET);
仍然返回一個空數組,POST值仍然被丟棄。發送GET和POST都會在評估時返回GET:$_SERVER['REQUEST_METHOD'];
。
如何正確實施?另外,我不能使用庫並且必須實現我自己的路由器。
任何幫助或建議表示讚賞。
編輯:
從頭開始了:
的URL請求應http://localhost/api/*
當前.htaccess文件看起來像這個:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ controller.php?do=$1 [L,QSA]
其中controller.php
坐在/var/www/api
虛擬主機文件中/etc/apache2/sites-available
題爲api.conf
,看起來像這樣:
<VirtualHost *:*>
ServerName test.example.com
ServerAlias www.test.example.com
DocumentRoot /var/www/api/
<Directory "/var/www/api/">
Allow from all
AllowOverride all
Options +Indexes
</Directory>
</VirtualHost>
仍然有同樣的問題:
The requested URL /api/something was not found on this server.