2

必要な URL は 3,000 以上あります301 redirect。多くの URL で市 / 州の使用を誤って重複させたため、繰り返しが長くなりすぎました。if statements必要な URLに対して 3,000 以上をプログラムで生成できます301 redirected。しかし、これはすべてのページの上部に数千行のコードになります。redirectsこのアプローチを使用した 3,000 以上の URL からの 3 つの例を次に示します。

if($_SERVER['REQUEST_URI'] == 'central-alabama-community-college-alexander-city-alabama') {
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: http://www.website.com/colleges/central-alabama-community-college-alexander-city");
    exit;
    }

if($_SERVER['REQUEST_URI'] == 'athens-state-university-athens-alabama') {
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: http://www.website.com/colleges/athens-state-university-alabama");
    exit;
    }

if($_SERVER['REQUEST_URI'] == 'auburn-university-auburn-alabama') {
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: http://www.website.com/colleges/auburn-university-alabama");
    exit;
    }

この方法は効果的ですが、悪い習慣ではないかと心配しています。代わりに連想配列を使用する別のアプローチがあります。こんな感じです:

$redirects = array('central-alabama-community-college-alexander-city-alabama' => 'central-alabama-community-college-alexander-city','athens-state-university-athens-alabama' => 'athens-state-university-alabama','auburn-university-auburn-alabama' => 'auburn-university-alabama');

if(array_key_exists($_SERVER["REQUEST_URI"], $redirects)) {
    header("HTTP/1.1 301 Moved Permanently"); 
    header("Location: http://www.website.com/colleges/$redirects[1]");
    exit;
    }

少し間違っている可能性がありますが、何をすべきかがわかります。これにアプローチする最良の方法は何ですか?.htaccessそれぞれのリダイレクトがどれだけユニークかという理由で、有効に使用できるとは思えません。各 URL に一貫した変数はありません。何かご意見は?

4

3 に答える 3

2

私は連想配列を使用しますが、次のように改行を使用して読みやすくすることができます。

$redirects = array(
    'central-alabama-community-college-alexander-city-alabama' => 'central-alabama-community-college-alexander-city',
    'athens-state-university-athens-alabama' => 'athens-state-university-alabama',
    'auburn-university-auburn-alabama' => 'auburn-university-alabama',
    'etc...', 'etc...'
);

もう 1 つの方法は、これをデータベースに保存し、その方法で検索することです。そうすれば、セキュリティ上の理由でロックダウンされている可能性のある PHP ファイル自体を維持する必要がなくなります。

于 2013-02-25T07:16:26.377 に答える
1

リダイレクトをデータベースに配置する必要があると思いますが、

次に、.htaccess を使用して、正しい URL への 301 リダイレクトを行う単一の php スクリプトにリダイレクトします。

于 2013-02-25T07:39:29.607 に答える
0

.htaccessこれをファイルに入れることが最善の解決策になると思います。非常に簡単に実装できます。また、これは、すべてのロジックを PHP ファイルに入れるよりもはるかに優れたソリューションだと思います。

RewriteEngine On
Redirect 301 /old-page.html http://www.mysite.com/new-page.html
于 2013-02-25T07:17:13.163 に答える