使用Apache 2,我想配置我的網站,以便對域的任何請求都被轉發到Python CGI腳本。基本上,如果用戶去http://www.example.com我希望執行cgi /cgi-bin/cgi.py。如果用戶轉到http://www.example.com/index.rss我希望以/index.rss作爲參數執行/cgi-bin/cgi.py。我嘗試過ScriptAlias和Rewrite的各種組合,似乎無法讓他們處於正確的關係。讓CGI腳本能夠通過Apache獲取到域的所有請求
3
A
回答
1
(不知道與那些回答自己的問題正確的程序 - 但...)
貌似我是有和的ScriptAlias重寫規則衝突。最終解決方案是使用AddHandler創建關係,然後使用mod_rewrite將所有內容拉入CGI。和RewriteCond以避免捕獲/資源/和/媒體/。我的VirtualHost現在看起來像這樣:
AddHandler cgi-script .cgi
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/resources/.*$
RewriteCond %{REQUEST_URI} !^/media/.*$
RewriteRule ^(.*)$ /cgi-bin/pyblosxom.cgi$1 [L]
感謝您的幫助球員。
0
雖然它不是100%你正在尋找的東西,但這裏是我用於遺棄舊域的.htaccess來正確地重定向人。它基本上重定向任何在本地目錄結構中找不到的文件或目錄。它是由腳本本身要弄清楚什麼網址有人呼籲:
RewriteEngine On
#if the request isn't for a file or a directory...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
2
這將重定向所有請求到你的Python文件。 如果您在仍與腳本別名的麻煩,嘗試在重寫規則行 的末尾增加直通標誌[PT]如果您仍然希望能夠訪問圖像等則重寫規則之前,補充一點:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
0
我使用捕獲重寫規則,它在一定程度上工作。問題是請求URI的原始查詢字符串在使用$ 1時未傳遞給cgi。我最終刪除了捕獲,並在我的cgi腳本中引用ENV ['REQUEST_URI']以獲取訪問權限。
相關問題
- 1. 不能讓Apache執行perl CGI腳本
- 2. Apache CGI,捕獲目錄的所有請求
- 3. Apache addon perl腳本通過通配符獲取子域
- 4. 如何通過mod_wsgi捕獲Apache的所有http請求?
- 5. .htaccess:通過獲取請求從子域重定向到域
- 6. 通過PHP/Perl腳本過濾某些apache請求
- 7. 通過CGI執行腳本
- 8. PHP到C/C++通過CGI腳本
- 9. 子域CGI腳本
- 10. Ruby Apache CGI腳本頭過早結尾
- 11. 如何在Apache中運行cgi時獲取請求信息?
- 12. 通過一個腳本服務與apache所有路徑在域下通過一個腳本
- 13. 跨域請求 - 執行所有腳本的頁面內容
- 14. 如何通過Nightmare.js獲取所有網頁請求?
- 15. 如何使用Apache上的基本Python CGI腳本處理POST請求?
- 16. 到腳本的子路徑的所有請求映射到腳本本身
- 17. 從WCF請求獲取請求域名?
- 18. 通過bash腳本執行curl請求
- 19. 發送HTTP請求通過python腳本
- 20. mod_rewrite:如何獲取所有請求併發送到PHP腳本進行路由?
- 21. 通過AJAX請求PHP腳本。 Ajax請求返回實際的PHP腳本
- 22. 在Python CGI腳本(Apache,mod_cgi)中獲取GET查詢
- 23. 是否可以編寫一個perl cgi腳本來處理所有http請求
- 24. 跨域http獲取請求
- 25. 跨域Ajax獲取請求
- 26. 如何實現grep到CGI腳本請?
- 27. Android:沒有通過http獲取xml獲取基本認證請求
- 28. 如何從Apache https服務器端通過腳本獲取https post請求的內容
- 29. $ http通過表格獲取請求
- 30. JavaScript通過表單值獲取請求