0

以前のサイトでは、php urlencode 関数を使用して URL クエリ パラメータをエンコードしておらず、Google がそれらのエラーをクロールしていました。変更を実装した後、これらのインデックス付きの古い URL は 404 応答コードを返します。htaccess の書き換えを介して古い URL を新しい URL にリダイレクトしようとしましたが、機能しません。

/category/Science.html新しい urlにリダイレクトしたいとし/category/Science, Engineering & Technology.htmlます。についてScience, Engineering & Technologyは、関数を介して「Science%252C%2BEngineering%2B%2526%2BTechnology」を取得していurlencodeます。

このルールで URL を書き換えようとしたとき:

RewriteRule ^category/Science.html$ /category/categ.php=Science%252C%2BEngineering%2B%2526%2BTechnology[R=301,L]

うまくいきません。

この問題を解決する適切な方法を提案してください。

4

1 に答える 1

1

このような理由から、ファイル名には小文字、数字、ハイフン、およびアンダースコアのみを含める必要があります。何らかの理由でファイルの名前を変更できない場合は、PHP のトリックを実行できます。

.htaccess

ErrorDocument 404 404.php

404.php

<?php
switch($_SERVER['REQUEST_URI']){
    case "/category/Science.html":
        header('HTTP/1.1 301 Moved Permanently');
        header("Location: /category/".urlencode("Science, Engineering & Technology").".html");
        exit();
    break;
    ...
}

// Custom 404 page stuff

ずさんで、管理が難しく、予期しない動作であるため、これにはお勧めしませんが、ファイルの名前を変更できない場合は、それを選択してください。

于 2013-06-06T06:24:45.387 に答える