HTaccess与AngularJS结合使用

时间:2015-08-04 13:34:55

标签: angularjs .htaccess

我已经将一个全新的网站编写为一个辅助项目,我希望它可以被谷歌和合作社编入索引。 该网站已经使用AngularJS制作并针对SEO进行了优化(至少,我尝试过)。

到目前为止,Google已经以可怕的方式索引每个页面:

www.mywebsite.com/#!/post/title-of-this-post/

页面已在sitemap.xml

中声明
<url>
    <loc>http://mywebsite.com/post/title-of-this-post</loc>
    <lastmod>2015-08-04T00:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
</url>

网站正在使用HTML5 routes删除#!符号。 当我尝试访问索引页面时,它会转到主页面。我需要删除trailing slash

到目前为止,我已经能够创建以下HtAccess文件:

DirectoryIndex index.html
RewriteEngine On
RewriteBase /

# BEGIN Seo crawler
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$
RewriteRule ^$ /crawler.php$1 [QSA,L]
# END Seo crawler

# BEGIN sitemap and rss
RewriteRule ^sitemap.xml$ sitemap.php [L]
RewriteRule ^rss.xml$ rssfeed.php [L]
# END sitemap and rss

# BEGIN Remove trailing slash from URLs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} (.*)$
RewriteRule (.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]
# END Remove trailing slash from URLs

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index
RewriteRule (.*) index.html [L]

但这不起作用。

  • 键入http://mywebsite.com/post/title-of-this-post/正确重定向到http://mywebsite.com/post/title-of-this-post(删除尾随斜杠)。
  • 键入www.mywebsite.com/#!/post/title-of-this-post/遗憾地重定向到www.mywebsite.com/home
  • 键入www.mywebsite.com/#!/post/title-of-this-post(不使用尾部斜杠)正确重定向到http://mywebsite.com/post/title-of-this-post

有没有办法实现这个目标?

我在AngularJS项目中使用Route UI

1 个答案:

答案 0 :(得分:0)

最后,我已经设法自己解决了这个问题:

只需将这段代码添加到AngularJS来源:

app.config(function ($urlMatcherFactoryProvider) {
    $urlMatcherFactoryProvider.caseInsensitive(true);
    $urlMatcherFactoryProvider.strictMode(false);
});