2017-08-24 150 views
0

我正在使用PHP運行API。 我想在格式mod_rewrite和編碼參數

http://localhost/crm/api/addCustomer/John/Doe/Address 123/... 

它的工作請求發送,直到我打包含/字符參數地址。它將邏輯上保存的數據轉移到數據庫中。

所以我從Javacript

提交數據之前完成encodeURIComponent方法
address = encodeURIComponent(getVal("address")); 

現在,我得到404未找到對象,當我嘗試調用API。

這是我當前的URL與編碼數據

http://localhost/crm/api/addCustomer/John/Doe/Address%202166%2F62/..... 

,這裏是我的.htaccess

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase /crm/api 


RewriteRule ^getCustomers apihandler.php?action=getCustomers [NC,L,QSA] 
RewriteRule ^getCustomer/(.*)$ apihandler.php?action=getCustomer&id=$1 [NC,L,QSA] 
RewriteRule ^addCustomer/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+) apihandler.php?action=addCustomer&name=$1&surname=$2&address=$3&country=$4&email=$5&phone=$6 [NC,L,QSA] 

如何解決這一問題?

+0

首先,你不應該使用'GET'要求創造新的紀錄。 'GET'用於獲取東西,而不是創建它們。改爲使用'POST'。 – akond

回答

0

AllowEncodedSlashes Nodecode到您的虛擬主機配置:

所有的
<VirtualHost *:80> 
    ServerName ... 
    DocumentRoot ... 
    AllowEncodedSlashes Nodecode 
    ...