curlを使用してFTPESからログインするときにユーザー名の「@」をエスケープする方法


0
$ curl -T "index.html" -k --ftp-ssl -u "MYUSER@MYDOMAIN.COM" MYDOMAIN.COM
Enter host password for user 'MYUSER@MYDOMAIN.COM':


 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0 57173    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>405 Method Not Allowed</title>
</head><body>
<h1>Method Not Allowed</h1>
<p>The requested method PUT is not allowed for the URL /index.html.</p>
<hr>
<address>Apache/2.2.16 Server at MYDOMAIN.COM Port 80</address>
</body></html>
100 57480  100   307  100 57173    284  52902  0:00:01  0:00:01 --:--:-- 53633

Stack Overflowに投稿されました


2
クロスポストは禁止です。
ジョンT

回答:


1

問題は@(エスケープする必要はない)ではなくcurl、そもそもFTPを使用するように指示していないということです。HTTPサーバーからHTTP応答を受信して​​いることに注意してください。

cURLはURLを取得し、ベアmydomain.comを検出するとhttp://自動的に追加します。使用curl ... ftps://mydomain.com--ftp-sslちなみに自動的に有効になります)。


1

私はwiresharkでそれを嗅ぎました:

curl --ftp-ssl -T "FILE.TXT" -k -u "MYUSER@MYDOMAIN.COM:MYPASSWORD" " ftp://MYDOMAIN.COM "

これはftpを使用します!:Pそれは完全に動作します!解決済み:)

ありがとうございました!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.