【问题标题】:Htaccess - Combining underscore to hyphen and uppercase to lowercase 301 redirectHtaccess - 将下划线结合到连字符和大写到小写 301 重定向
【发布时间】:2015-03-30 21:12:19
【问题描述】:

目前我在我的网站上使用下划线连字符 301,这运行良好,但我还想将所有链接转换为小写,并将大写添加到小写重写。

我可以这样做,但使用当前方法它会执行以下操作,我认为这对 SEO 不是很好:

  1. 原始网址
  2. 301
  3. 已替换连字符
  4. 301
  5. 连字符小写 URL

如何将以下重写合并到一个查询中,以便通过 301 将带有下划线或大写的 url 转换为连字符和小写?

下划线改写连字符

RewriteRule ^post/([^_]*)_([^_]*_.*)$ /posts/new-category-1/$1-$2 [L,NE]
RewriteRule ^post/([^_]*)_([^_]*)$ /posts/new-category-1/$1-$2 [L,NE,R=301]

RewriteRule ^forum/([^_]*)_([^_]*_.*)$ /forums/new-category-1/$1-$2 [L,NE]
RewriteRule ^forum/([^_]*)_([^_]*)$ /forums/new-category-1/$1-$2 [L,NE,R=301]

大写到小写重写

httpd.conf

RewriteMap lc int:tolower

.htaccess

RewriteCond %{REQUEST_URI} ^[^A-Z]*[A-Z].*
RewriteRule ^ ${lc:%{REQUEST_URI}} [L,R=301]

【问题讨论】:

    标签: apache .htaccess redirect httpd.conf


    【解决方案1】:

    您可以通过以下规则避免多个301

    RewriteRule ^(post|forum)/([^_]*)_([^_]*_.*)$ /$1/$2-$3 [L,NE]
    
    # if there is any upper case letter then do both lowercase conversion AND
    # underscore to hyphen replacement
    RewriteCond %{REQUEST_URI} [A-Z]
    RewriteRule ^(post|forum)/([^_]*)_([^_]*)$ /${lc:$1}/${lc:$2}-${lc:$3} [L,NE,R=301]
    
    # otherwise regular underscore to hyphen replacement
    RewriteRule ^(post|forum)/([^_]*)_([^_]*)$ /$1/$2-$3 [L,NE,R=301]
    
    # and regular lower case conversion
    RewriteRule ^(post|forum)/[^A-Z]*[A-Z] ${lc:%{REQUEST_URI}} [L,R=301]
    

    【讨论】:

    • 目前如果没有下划线,这允许大写字母?
    • 似乎将/profiles/Person 重定向到/profiles/person?最后一行似乎可以在任何 URL 上运行,而不仅仅是匹配的?
    • 是否可以在(post|forum) 上只使用小写字母或在/profiles/name 上不使用小写字母?
    • 刚上线所以错过了你的聊天。我没有在 URI 中添加 /category-1/ 的任何规则。看起来你的其他规则是冲突的。确保在您的 .htaccess 中保留上述规则之后的其他规则,并在新浏览器中进行测试。此外,如果它不能解决,请打开一个新问题,因为从 cmets 部分了解复杂问题并不重要。
    • 原来是我没有把RewriteMap lc int:tolower放到新的vhost conf中
    猜你喜欢
    • 2019-02-04
    • 2011-11-19
    • 2015-01-07
    • 2016-05-23
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    相关资源
    最近更新 更多