【问题标题】:How to remove hash from url angular app?如何从 url angular 应用程序中删除哈希?
【发布时间】:2016-11-17 14:59:22
【问题描述】:

这可能是重复的问题。但我尝试了很多解决方案,没有答案对我有用。我正在将 ui-router 用于 Angular Web 应用程序。 我正在使用 apache2 服务器为 angular 应用程序提供服务。我正在使用 Ubuntu。 我的项目代码在文件夹 \var\www\html\myapp 内 这里 myapp 是我的应用程序文件夹。 我尝试了以下
1 将 <base href="/myapp/"> 添加到头部标签
2 添加 $locationProvider.html5Mode(true); 或 $locationProvider.html5Mode({ enabled: true, requireBase: false}); (分别尝试)
3添加.htaccess文件,内容如下

Options +FollowSymLinks

<ifModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !index
    RewriteRule (.*) index.html [L]
</ifModule>

以及我从谷歌获得的 .htaccess 文件的其他内容以提供路径。
我尝试将 .htaccess 文件放在 \var\www\html\ 以及 \var\www\html\myapp 中。 它会从 url 中删除哈希,但是当我点击刷新时,它会显示 not found。谁能帮帮我。

【问题讨论】:

    标签: angularjs .htaccess hash html5mode


    【解决方案1】:

    在\var\www\html\myapp 下的.htaccess 文件中试试这个:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
    RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ index.html [L]
    

    在index.html 头部:

    <base href="/myapp/">
    

    在应用配置中:

    $locationProvider.html5Mode({
      enabled: true,
      requireBase: false
    });
    
    /* Records full path */
    $analyticsProvider.withBase(true);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-31
      • 2018-01-23
      • 1970-01-01
      • 1970-01-01
      • 2011-05-29
      • 2012-04-19
      相关资源
      最近更新 更多