我有一个旧博客,我最近更新过。旧的博客帖子有由searchengines索引的坏(旧)网址。我现在正在创建更好的,但由于这一点,我在Google网站管理员中获得了重复。
我用rewriteRule解决了大部分问题,但我遇到了问号,感叹号和点等特殊标志。
我已经尝试了其他线程中建议的几乎每个片段,但没有运气......
问题是这样的:
我有一篇旧帖子,其中包含网址:
http://example.com/blog/username/thank-god?-its-friday!!!._b-37483.html
在我的博客上更新代码后,系统现在吐出:
http://example.com/blog/username/thank-god-its-friday_b-37483.html
上述两个链接都有效,我在Google上获得了重复内容。
如何删除'?','!','。'在httpd.conf(或htaccess)中以适当的方式?
以下是我在httpd.conf中的代码,涉及重写
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^.*$ http://example.com%{REQUEST_URI} [R=301,L]
RewriteRule ^sitemap.xml$ sitemap.php [L]
RewriteRule ^(.*)ä(.*)$ /$1a$2 [L,R=301]
RewriteRule ^(.*)å(.*)$ /$1a$2 [L,R=301]
RewriteRule ^(.*)ö(.*)$ /$1o$2 [L,R=301]
RewriteRule ^(.*)Å(.*)$ /$1a$2 [L,R=301]
RewriteRule ^(.*)Ä(.*)$ /$1a$2 [L,R=301]
RewriteRule ^(.*)Ö(.*)$ /$1o$2 [L,R=301]
Rewriterule ^blog/(.+)/(.+).html$ ./blog/view/blog.php?page=$1&mode=$2 [NC]
Rewriterule ^blog/(.+).html$ ./blog/blog.php?page=$1 [NC]
Rewriterule ^blog/(.+)/$ ./blog/view/blog.php?page=$1 [NC]
Rewriterule ^blog/$ ./blog/blog.php [NC]
RewriteCond %{REQUEST_FILENAME} !-f
Rewriterule ^blog/(.+)/(.+)$ ./blog/view/blog.php?page=$1&mode=$2 [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^blog/(.+)$ ./blog/blog.php?page=$1 [NC]
RewriteRule ^([A-Za-z0-9\-\+]+)$ ./artiklar.php?p=$1 [L]
答案 0 :(得分:1)
您可以尝试在RewriteEngine On
RewriteRule ^(.*/)([^/]*)[^/A-Za-z0-9_-]+([^/]*\.html)$ /$1$2$3 [L,R=301]
清除所有不需要的字符。