【问题标题】:Shortten URL's with htaccess that works with Google indexing使用适用于 Google 索引的 htaccess 缩短 URL
【发布时间】:2015-05-22 18:15:54
【问题描述】:

好的,让我们先解释一下我在服务器和 htaccess 文件中的内容:

在服务器中我有以下文件:

www.mydomain.com/provincias/madrid/town1.html www.mydomain.com/provincias/madrid/town2.html www.mydomain.com/provincias/madrid/town3.html ... www.mydomain.com/provincias/barcelona/town1.html www.mydomain.com/provincias/barcelona/town2.html ...

如您所见,文件夹 'provincias' 在所有 url 中重复,对于获取内部文件的排序是必要的,但对于导航和用户来说不是,因此我在 htaccess 文件中添加了以下规则,它可以正常工作:

RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)\.html$ provincias/$1/$2\.html [L,NC]

因此,使用此规则,您可以访问,例如,下一个 url:www.mydomain.com/provincias/barcelona/town2.html 以及用户在浏览器地址栏中看到的另一个 url:www.mydomain.com/barcelona/town2.html,因为在内部 htaccess 将其重定向到真正的 url '省'。

但我有一个问题,我看到谷歌已经用“provincias”文件夹索引了技术和真实网址,第一个,如果你点击它,人们会在他们的地址栏中浏览该网址。考虑到内部不存在没有“provincias”的网址,我如何将人员和谷歌流量从www.mydomain.com/provincias/barcelona/town2.html 重定向到www.mydomain.com/barcelona/town2.html

【问题讨论】:

    标签: html .htaccess mod-rewrite


    【解决方案1】:

    在你的 .htaccess 中试试这个规则

    #redirect real url to new one
    RewriteCond %{THE_REQUEST} [A-Z]{3,}\ /+provincias/([^&\ ]+)/([^&\ ]+)\.html
    RewriteRule ^ /%1/%2.html? [R=301,L]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)\.html$ provincias/$1/$2\.html [L,NC]
    

    【讨论】:

    • 完美运行!非常感谢@panama-jack! :-) 只是一个问题:RewriteCond %{THE_REQUEST} [A-Z]{3,}\ /+provincias/([^&\ ]+)/([^&\ ]+)\.html中的{3,}是什么意思,仅供自学
    • @VisualRTV 很高兴听到它。它只是说[A-Z]之前的匹配字符组应该匹配minimum长度为3个字符。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-23
    • 2015-09-10
    • 2013-06-22
    • 2012-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多