2014-01-11 122 views
0

我居然得到的回答是,如果我想改變www.mydomain.com/laravel4/public/posts我的網址爲www.mydomain.com/posts如何修改這個mod改寫成我想要的url?

這是我和我的.htaccess

RewriteEngine On 

RewriteRule !^laravel4/public/ /laravel4/public%{REQUEST_URI} [L,NC] 

這樣做,但我還有一個問題,如果我想要的網址爲www.mydomain.com/laravel4/posts哪些需要公開我應該修改什麼?我認爲在上面的代碼中取出laravel4會起作用,但似乎並不容易:(

回答

1

理想情況下,您應該將Laravel安裝移出文檔根目錄,並將公用文件夾的內容移動到文檔根目錄並相應地編輯index.php和bootstrap/paths.php,或者將文檔根目錄設置爲Laravel的公用文件夾,如果您打開支持服務標籤,某些主機會爲您更改文檔根目錄。

但那不是總是可能取決於你的主機,大多數人會告訴你去找一個更好的主機,但再次,這並不總是一個選項。

下面是一個.htaccess示例你可以用來將所有URL重寫到Laravel的public/index.php,但需要注意的是,這不是設置Laravel的非常安全的方式,任何人都可能訪問您的文檔根中存在的任何配置和其他文件,顯示用於加密的數據庫密碼和密鑰。

RewriteEngine On 
RewriteRule^laravel4/public/index.php [L] 

更新爲每個請求

RewriteEngineOn 
RewriteRule ^laravel4/.* laravel4/public/index.php [L] 
+0

啊,我相信我得到你的意思。但是,沒有人需要域密碼才能打開配置和內容? 順便說一下,rewriterule有助於取出laravel4/public/index.php,但我想知道如果我只想取出public/index.php並保留laravel4/posts或laravel4/ – Dora

+0

任何你放入任何知道站點URL的人都可以訪問文檔根目錄。我的意思是你可以使用htpassword和類似的東西,但它仍然可能訪問如果錯誤配置的地方。將它完全移出文檔根目錄更安全,除非您有某種訪問服務器本身的權限,否則無法訪問它。看到我更新的答案,以保持laravel4在URL – Wader

+0

給500更新的內部服務器錯誤>。「」 – Dora

0

您可以使用此規則:

RewriteEngine On 

RewriteCond %{REQUEST_URI} !^/laravel4/public(/|$) [NC] 
RewriteRule ^laravel4/(.*)$ /laravel4/public/$1 [L,NC] 
+0

沒有工作,但感謝您的幫助:P – Dora

+0

什麼是上述.htaccess的位置?是否有任何.htaccess在laravel目錄中? – anubhava

+0

位置上面.htaccess什麼都沒有......它已經在域的根目錄下,並且在laravel目錄中有一個公共文件夾,並且在該公共文件夾中有一個'.htaccess'文件。 '.htaccess'文件,但仍然不起作用 – Dora