想象自己應對簡單的symfony安裝:的Symfony的baseUrl沒有到Apache的重寫和休息的所有路由
symfony new testsite
現在想象一下這是Apache服務器的根目錄裏面。當然,這是不可行的,因爲symfony webroot位於/web/
文件夾中。
所以,你做一個簡單的重寫規則和symfony的文件夾拖放在htaccess的:
RewriteEngine On
RewriteRule ^(.*)$ web/$1 [QSA,L]
而這個工作。萬歲!所以你嘗試一下「Create your first page in symfony」指南,並看看你的控制器的404!
如此看來symfony這樣從路徑的開始切斷3個字符。一些調試顯示它從$_SERVER['SCRIPT_NAME']
獲得了基址,這是導致問題的原因,因爲當您重寫url時,這並不會改變。
有沒有適當的方法來解決這個問題,或者我只需要在我的app.php中手動重新定義SCRIPT_NAME
?
您能編輯您的文章併發布您的'確切'代碼嗎?這可能很簡單。 –
這很簡單,我從字面上複製粘貼他們的例子(當然有一個PHP開放標籤)這裏我唯一寫的代碼是htaccess文件,它就在那裏。無論我搜索多少,它看起來像symfony是從來沒有直接從webroot運行(這是奇怪的,因爲它似乎是一個常見的用例) –
所以你有'web /'文件夾作爲Apache DocumentRoot?如果你發佈了你的Apache VirtualDirectory配置或者配置,這將是很好的,以防萬一你錯過了某些東西。我只是想幫助。 –