【问题标题】:htaccess 301 redirect Find and Replacehtaccess 301 重定向查找和替换
【发布时间】:2012-01-27 15:51:45
【问题描述】:

我有一个涉及印度各个城市的网站。代码从外部来源建立链接,可能将城市命名为加尔各答、加尔各答、加尔各答等。

我需要一个 htaccess 301 重定向规则,考虑到所有拼写错误将重定向以下已知的正确拼写(加尔各答):

Calcutta-to-Delhi.html 到 Kolkata-to-Delhi.html

还有

Calcuta-Airport.html 到 Kolkata-Airport.html

谢谢。

【问题讨论】:

    标签: .htaccess mod-rewrite redirect


    【解决方案1】:

    你的要求并不简单,需要你有一台功能强大的电脑,但结果简直太棒了。

    以下是我的建议:

    • 您必须测试您的表达式是否匹配 URL /,即http://mysite.com/(expr1)-to-(expr2)/
    • 如果是且没有文件,请重定向到处理所有内容的 Php 文件。
    • 在这个 Php 文件中,分析 URL(再一次):如果你的表达式匹配 /(expr1)-to-(expr2)/ 然后用 MySQL 搜索 SOUNDEX(在你的 Php 文件中)。请参阅查询示例here
    • 然后,在这种“特殊”404 案例中,像 google 一样提出建议,即:“您的意思是 Kolkata-to-Delhi.html?如果是,请点击链接”。

    这是一项艰巨的工作,但它既有趣又显示了您的技能。很少有网站这样做(实际上我只知道 google)。

    【讨论】:

      【解决方案2】:

      也许你可以试试这样的:

      # REDIRECTS FROM (eg): http://www.calcutta.com.au/ to http://www.kolkata.com.au/
      RewriteCond %{HTTP_HOST} ^calcutta\.com\.au$ [nocase, ornext]
      RewriteCond %{HTTP_HOST} ^www\.calcutta\.com\.au$ [nocase]
      RewriteRule ^(.*)$ http://www.kolkata.com.au/ [nocase,L,R=301,O]
      

      注意忽略大小写的“[nocase]”。这只会从“calcutta”重定向到“kolkata”,而不是从“calcuta”或“Kolkata”重定向(注意calcuta中缺少't'和Kolkata中的大写'K')。

      您需要按照与上述相同的代码模式再添加两条规则。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-01
        • 2011-01-03
        • 2012-03-10
        • 2021-07-22
        • 1970-01-01
        相关资源
        最近更新 更多