Я закодировал новый веб-сайт как побочный проект, и я бы хотел, чтобы он был проиндексирован Google и co. Веб-сайт был создан с помощью 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
.Есть ли способ достичь этого?
Я использую Route UI
для своего проекта AngularJS.
Наконец, мне удалось исправить это самостоятельно:
Просто добавьте этот фрагмент кода в источник AngularJS
:
app.config(function ($urlMatcherFactoryProvider) {
$urlMatcherFactoryProvider.caseInsensitive(true);
$urlMatcherFactoryProvider.strictMode(false);
});