그래서 내가하려는 것은 사용자가 사이트에 이미지를 포함시킨 다음 해당 이미지가 버튼이있는 iframe에 자동으로 대체되도록 허용하는 것입니다. 그 이유는 사용자가 허용되지 않는 네트워크에서 js 나 다른 코드를 사용하는 것을 피하는 것이 쉽기 때문입니다.htaccess 설정을 BaseHTTPServer 설정으로 변환
이것은 PHP가있는 아파치에서 가능하지만 파이썬에서이 작업을 수행하는 방법은 특히 분명하지 않습니다.
원래 htaccess로 : Redirect /embed.jpg http://somesite.com/embed.php
그러나 파이썬에서 , 그것은 정말 (이 예제는 작동하지 않습니다) 작동하지 않습니다.
server.py : 그 코드를 볼 수 있습니다
#!/usr/bin/env python
import BaseHTTPServer
import getopt
import socket
import sys
ADDR = ["", 8080]
def usage(f = sys.stdout):
print >> f, "Usage: %s [ADDRESS [PORT]]" % sys.argv[0]
class Handler(BaseHTTPServer.BaseHTTPRequestHandler):
def do_GET(self):
if self.path == "/":
self.send_response(200)
self.send_header("Content-type", "text/html; charset=utf-8")
self.end_headers()
print >> self.wfile, """\
<!DOCTYPE html>
<body bgcolor=dodgerblue>
<img src="x.png" width=200 height=200>
</body>
"""
return
if self.path == "/x.png":
self.send_response(302)
self.send_header("Content-type", "image/png")
self.send_header("Location", "x.html")
self.end_headers()
return
if self.path == "/x.html":
self.send_response(200)
self.send_header("Content-type", "text/html; charset=utf-8")
self.end_headers()
print >> self.wfile, """\
<!DOCTYPE html>
<body bgcolor=slateblue>
Inner HTML.
</body>
"""
self.send_response(404)
self.send_header("Content-type", "text/html; charset=utf-8")
self.end_headers()
print >> self.wfile, """\
<!DOCTYPE html>
Not found.
"""
class Server(BaseHTTPServer.HTTPServer):
allow_reuse_address = True
opts, args = getopt.gnu_getopt(sys.argv[1:], "h", ["help"])
for o, a in opts:
if o == "-h" or o == "--help":
usage()
sys.exit(0)
if len(args) >= 1:
ADDR[0] = args[0]
if len(args) >= 2:
ADDR[1] = args[1]
if len(args) >= 3:
usage(sys.stderr)
os.exit(1)
server = Server(tuple(ADDR), Handler)
print "Listening on %s:%d." % (server.server_name, server.server_port)
server.serve_forever()
제대로 작동하지 않는다고 말하는 것입니까? 정확히 무슨 일이 일어나고 있습니까? –