我已经将一个全新的网站编写为一个辅助项目,我希望它可以被谷歌和合作社编入索引。 该网站已经使用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
。
答案 0 :(得分:0)
最后,我已经设法自己解决了这个问题:
只需将这段代码添加到AngularJS
来源:
app.config(function ($urlMatcherFactoryProvider) {
$urlMatcherFactoryProvider.caseInsensitive(true);
$urlMatcherFactoryProvider.strictMode(false);
});