2017-05-28 83 views
0

我想刪除「#!」從我的網站URL。我能夠完美地設置它,並且它正在工作。在角度前端和laravel後端啓用HTML5模式爲true

問題是,當我去任何除家庭以外的子網址並重新加載頁面,然後它說未找到頁面。但是,當我點擊主頁上的鏈接時,我可以打開相同的子網址。

例如,

主頁網址:http://abcxyz.com

子網址:: http://abcxyz.com/qaz

我在通過以下方式角應用程序中設置的HTML 5模式:

1)啓用HTML 5模式:

$locationProvider.html5Mode(true); 
$locationProvider.hashPrefix(''); 

2)設置基礎標籤

在index.blade.php文件和頭標籤,我設置:

<base href="/" /> 

3)設置htaccess的

同樣,我嘗試設置我的。 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] 

    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR] 
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d 
    RewriteRule^- [L] 
    RewriteRule^index.php 

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

此外我使用Laravel後端。所以請幫助我正確設置我的.htaccess文件,因爲我肯定在這裏丟失了一些東西。或者如果這個問題是由於其他問題,請讓我知道。

回答

1

如果您已經創建了虛擬主機,然後使用/etc/apache/sites-available/000-default.conf

<VirtualHost *:80> 
    ServerName domainname.com 
    DocumentRoot /var/www/html/docroot/dist/ 
    <Directory /var/www/html/docroot/dist/> 
     RewriteEngine on 
     RewriteCond %{REQUEST_FILENAME} -s [OR] 
     RewriteCond %{REQUEST_FILENAME} -l [OR] 
     RewriteCond %{REQUEST_FILENAME} -d 
     RewriteRule ^.*$ - [NC,L] 
     RewriteRule ^(.*) /index.html [NC,L] 
     </Directory> 
</VirtualHost> 

否則下面,在你的.htaccess文件中使用這些重定向。 這應該解決你的郊區網頁找不到問題。

+0

謝謝,@Omkar,但這些重定向對我無效。我有一個角落前端與laravel後端。只有當每個URL重定向到主頁時,角路由纔會啓動 –

0

我試着在laravel增加一個路線我web.php文件:

Route::any('{any}',function(){ 
    return view('index'); 
})->where('any','.*'); 

我知道我們可以通過htaccess的實現這一目標。任何幫助將不勝感激。 但是,這個解決方案現在正在爲我工​​作。