用戶/
我在OS X機器上開發一個網站(Lion)。工作站點位於/ Users/username/Sites,我已將該目錄添加到/etc/apache2/users/username.conf。我可以查看沒有問題的頁面。
但是...我使用CodeIgniter,我想從URL中刪除index.php。這對mod_rewrite來說應該是一個相當簡單的工作。我已將.htaccess文件添加到目錄中(並在上面的conf文件中設置了AllowOverride All)。谷歌搜索後,我發現我需要選項+ FollowSymLinks設置(我在.htaccess文件中)。
這裏的問題是,它似乎從本地主機/〜用戶名/到/用戶/用戶名/站點重寫的URL。問題在於,在這種形式下,瀏覽器只是試圖下載index.php文件,而不是執行它。當鏈接是這會變得更糟,因爲/Users//Sites/index.php/controller/function不存在這些文件......笨是指接管在index.php,但只有當它被執行。
所以我不能移除Options + FollowSymLinks,因爲它會生成Access Forbidden錯誤,並且由於上述原因我不能保留它。
有趣的是,把一模一樣的網站/資源庫/ Web服務器/ Documents目錄工作正常。 OS X沒有出現在腦海中的FollowSymLinks到該目錄,可能是因爲它是在httpd.conf設置爲DocumentRoot的
我的httpd.conf是股票獅子,除了所有的AllowOverride上/庫/ Web服務器/文件。 mod_rewrite已啓用。
我username.conf是
<Directory "/Users/username/Sites/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
我在網站的目錄的.htaccess文件
Options +FollowSymLinks
RewriteEngine on
RewriteCond $1 !^(index\.php|static|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
很顯然,我可以開發上/庫/ Web服務器/文檔,而是寧願做它在我的本地文件中。
RewriteBase就是答案。非常感謝你的幫助。爲了將來的參考,我使用了「RewriteBase /〜用戶名」。查看日誌,RewriteBase在應用重寫規則後重寫URL前綴,這正是我所需要的。 – mblackwell8 2012-04-01 05:54:31