2016-10-22 66 views
2

取下laravel角度包括hashtag我有一個像使用的.htaccess

<ifModule mod_rewrite.c> 
RewriteEngine on 

# allow social media crawlers to work by redirecting them to a server-rendered static version on the page 

RewriteCond %{HTTP_USER_AGENT} (facebookexternalhit/[0-9]|Twitterbot|Pinterest|Google.*snippet) 
RewriteRule eventApp/(\d*)$ [P] 


# Required to allow direct-linking of pages so they can be processed by Angular 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^(.*) /eventApp/index.html [NC,L] 

</ifModule> 

笨.htaccess文件,但我想從laravel刪除#標籤。

回答

0

要刪除URL片段中的哈希,您只需要設置角度以不添加它,不需要修改.htaccess文件。因此,這個答案提出了一個更清晰的解決方案來解決所提出的問題

在您的角度基本模塊中,通常在您定義路線的地方。

angular.module('app', []) 
    .config([ 
     '$routeProvider', 
     '$locationProvider', 
     function($routeProvider, $locationProvider) { 
      // Hashtags no longer appear with this 
      $locationProvider.html5Mode(true); 

      // Route definitions below 
     }]); 

您還需要在HTML視圖中設置base標題元素。這被angular用來確定構建URL時應該使用的路徑。這個例子將使用根。

<!doctype html> 
<head> 
    <title>Laravel</title> 
    <base href="/" /> 
</head> 
+0

是否沒有其他方式指定基地Angular?使用該標籤會破壞正常的片段鏈接,例如''在URL路徑'/ foo /'的頁面不會進入'/ foo /#bar'。 – Walf

+0

是的,這是正確的,但如果我可以刷新我的網頁,它會顯示錯誤,如頁面找不到laravel。所以我認爲我們需要爲它設置.htaccess。所以它在CI​​中工作就像上面的規則一樣,我不設置它laravel。如果您知道,請告訴我們。 – Kamlesh

+0

你可以在laravel中捕捉路由,你不需要'.htaccess'修改。 'Route :: any('{path?}',function(){return view(「index」);}) - > where(「path」,「。+」);'注意結尾的位置這將匹配所有未定義的路由並返回角度應用程序。 –