2017-03-07 246 views
0

嗨我正在面臨問題與settng漂亮的url在URL中公開url,但它不適合我。漂亮的網址laravel 5.4

我已經嘗試過

Laravel 5.2 Pretty URLsLaravel 5 - Remove public from URL

多,類似的網址,但似乎沒有爲我工作。

我使用WAMP,Windows 8的

我必須確保mod_rewrite的是,和正常工作。

這是我在根上的htaccess。

RewriteEngine On 
RewriteRule ^(.*)$ public/$1 [L] 

我在測試htaccess的公共文件夾內

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    RewriteEngine On 

    # Redirect Trailing Slashes If Not A Folder... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 

    # Handle Authorization Header 
    RewriteCond %{HTTP:Authorization} . 
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
</IfModule> 

我也試圖從公共文件夾中粘貼htacess的根文件夾,並從公共文件夾中刪除了一個,但它憑着工作

實際發生的錯誤是我的路線文件跳過所有的模式,說如果我有類似Route :: get('/ api/login','api @ login'),那麼它確實可以與包含public的url一起使用,但是當我刪除public從url中跳過所有模式。它顯示了404

我確信所有的請求都達到公共/ index.php文件和神祕的事情是,當我打印

var_dump(Request::root()); 

在routes.php文件它的URL與公共它說http://localhost/folderName/subFolderName/public但沒有公開的網址,它說http://localhost/,我認爲這是爲什麼我的路線文件模式不工作的原因。

P.S.我已經設置標題pretty urls laravel 5.4而不是laravel routes not working,因爲我認爲它是.htaccess,我需要正確配置才能使其工作。

我不想更改文件夾結構,因爲我相信有一些原因,它是這樣的,應該有一些解決此問題的方法。

關於設置虛擬主機我不能在服務器上做到這一點(因爲我沒有權利),所以沒有使用在本地設置虛擬主機作爲解決辦法,我必須解決這個問題。

回答

0

在試試這個公鑰/的.htaccess

RewriteRule^/public/index.php [L] 

而在根的.htaccess

RewriteRule ^(.*)$ /public/$1 [L] 
+0

燕姿,謝謝拿出時間來回答這個,但是這給了我兩個網址404即有或沒有公開的網址。 – Arpita

+1

假設它說找不到index.php,嘗試在你的htaccess文件中修改index.php的路徑,它爲我解決了這個問題。首先嚐試刪除index.php,然後公開。不要同時混淆兩個htaccess文件,它會變得混亂。 – stef