実現したいこと
さくらのレンタルサーバーにてFLASKをインストールしプログラム動作確認を行ってるが、ルーティングを分けたいです。
発生している問題
ルーティングが全くできず、どんなURLを入れても@app.route('/')が実行され"This is the main page."が表示されてしまいます。
http://ドメイン/history
とアクセスしてもURL欄が
http://ドメイン/
となるのでリダイレクトされているようです。
色々調べてると下記相談があり、正しくこの現象です。
https://teratail.com/questions/323619
質問者様は自己解決しているようなのですが、どう変更し自己解決したのかが分からず同じような質問(サーバー会社は違うが)ですが質問させて頂きました。
ソースコード
app.py
#!/home/○○◯/.pyenv/versions/flask_peewee_3.6.4/bin/python # -*- coding: utf-8 -*- from flask import Flask from flask import render_template app = Flask(__name__) @app.route('/history') def history(): return "This is the history page." @app.route('/') def index(): return "This is the main page." if __name__ == '__main__': app.run()
ソースコード
index.cgi
#!/home/○○◯/.pyenv/versions/flask_peewee_3.6.4/bin/python import cgitb cgitb.enable() from wsgiref.handlers import CGIHandler from app import app from sys import path path.insert(0, '/home/○○◯/www/') # cgiを設置しているディレクトリです from app import app class ProxyFix(object): def __init__(self, app): self.app = app def __call__(self, environ, start_response): environ['SERVER_NAME'] = "○○◯.sakura.ne.jp" # ドメインです environ['SERVER_PORT'] = "80" environ['REQUEST_METHOD'] = "GET" environ['SCRIPT_NAME'] = "" environ['PATH_INFO'] = "/" environ['QUERY_STRING'] = "" environ['SERVER_PROTOCOL'] = "HTTP/1.1" return self.app(environ, start_response) if __name__ == '__main__': app.wsgi_app = ProxyFix(app.wsgi_app) CGIHandler().run(app)
ソースコード
.htaccess
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /index.cgi/$1 [QSA,L] <Files ~ "\.py$"> deny from all </Files>
試したこと
(サーバーのURL)/
(サーバーのURL)/history
にアクセス、いずれも”This is the main page."と表示されてしまいます。
(サーバーのURL)/history
では”This is the history page."と表示したいです。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/08/21 10:08