Php

如何將 PHP 論壇系統與新的 Django 網站集成

  • November 22, 2019

我即將推出一個新的 Django 網站(RedHat EL4、Apache 2.0.52、Django 1.1、mod_wsgi),從一個基本的靜態 html 和 php 網站過渡。按照目前的配置,Django 處理新站點上的每個請求,從站點根目錄開始(即 mydomain.com/ 由 Django 處理)。

舊站點在 mydomain.com/forum/ 上設置了一個 PhpBB 論壇。我試圖弄清楚我如何(或是否)可以讓論壇系統住在新網站的同一個地方。因此,mydomain.com/forums/ 下的任何內容都由 PhpBB 處理,其他所有內容都由 Django 處理。

我覺得 Apache ‘Location’ 指令是要使用的工具,但我沒有從 Apache 文件和 Google 獲得足夠的具體建議。我對 Apache conf 文件相當熟悉,但我以前沒有做過這種事情。感謝您的任何建議。

我通過我的 apache 配置中的以下內容從我的主機提供靜態文件:

 Alias /media /sites/mysite.org/www/media
 <Location /media>
   Order allow,deny
   Allow from all
 </Location>

這樣,Apache 在別名到達 Django 之前就處理了它。我假設您只需要啟用 php 即可針對該目錄工作。

更新根據下面格雷厄姆的評論。查看http://httpd.apache.org/docs/current/sections.html#page-header中的“什麼時候使用”部分

什麼時候用

在文件系統容器和網路空間容器之間進行選擇實際上非常容易。將指令應用於駐留在文件系統中的對象時,始終使用 or 。將指令應用於不駐留在文件系統中的對象(例如從數據庫生成的網頁)時,請使用 .

當試圖限制對文件系統中對象的訪問時,永遠不要使用它是很重要的。這是因為許多不同的網站空間位置 (URL) 可以映射到相同的文件系統位置,從而可以規避您的限制。例如,考慮以下配置:

<Location /dir/>
Order allow,deny
Deny from all
</Location>

如果請求是針對http://yoursite.example.com/dir/>的,這可以正常工作。但是如果你在一個不區分大小寫的文件系統上怎麼辦?然後,您可以通過請求<http://yoursite.example.com/DIR/輕鬆繞過您的限制。相反,該指令將適用於從該位置提供的任何內容,無論它是如何呼叫的。(一個例外是文件系統連結。使用符號連結可以將同一目錄放置在文件系統的多個部分中。該指令將跟隨符號連結而不重置路徑名。因此,為了最高級別的安全性,符號連結應該是使用適當的 Options 指令禁用。)

如果您可能認為這些都不適用於您,因為您使用的是區分大小寫的文件系統,請記住還有許多其他方法可以將多個 webspace 位置映射到同一個文件系統位置。因此,您應該始終盡可能使用文件系統容器。然而,這條規則有一個例外。將配置限制放在一個部分中是非常安全的,因為該部分將適用於所有請求,而不管具體的 URL 是什麼。

引用自:https://serverfault.com/questions/177242