0

誰かがこのHTACCESSの問題について私を助けることができるかどうかだけ興味があります。

適切に転送する必要があるこれらの古いURLがあります。

以前の構造

domain.com/Canada/Accounting

domain.com/Canada/Trades

domain.com/Canada/Sales

適切な構造

カテゴリ-/jobs/ accounting-jobs

場所-/jobs/ jobs-kelowna

一緒に-/jobs/ accounting-jobs-kelowna

ドメイン構造

domain.com/jobs/ [カテゴリ] -jobs- [場所]

これは、HTACCESまたはPHPのいずれかによって可能ですか...これらの404ページは必要ありません。これらを転送する良い方法があれば、私には86以上のことをする必要があります。これは私が持っているものですが、bad-urlsを正しく転送することができません。

/browse
/Toronto/
/Canada/Administrative
/Vancouver/
/Canada/Trades
/Calgary/
/Canada/Hospitality

これが今の私のHTACCESSです。

Options +FollowSymlinks

    RewriteEngine on
    RewriteBase /

    #
    # Trailing slash check
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
    RewriteRule ^(.*)$ $1/ [L,R=301]


    #
    # PAGES
    RewriteRule ^add-job/?$     /add-job.php [L]
    RewriteRule ^jobs/?$        /results.php [L]
    RewriteRule ^sitemap/?$     /sitemap.php [L]

    #
    # SEARCH
    # CATEGORY - accounting-jobs
    # LOCATION -            jobs-kelowna
    # TOGETHER - accounting-jobs-kelowna
    RewriteRule ^jobs/([a-zA-Z0-9_-]+)/([0-9]+)?$    results.php?whatwhere=$1&page=$2
    RewriteRule ^jobs/([a-zA-Z0-9_-]+)/([0-9]+)/?$   results.php?whatwhere=$1&page=$2
4

2 に答える 2

1

がある場合は、次の行をファイルmod_rewriteに追加できます。.htaccess

RewriteEngine on
RewriteRule ^Canada/Accounting$ /jobs/accounting-jobs [R,L]

ただし、質問から、何をマッピングしたいかは明確ではありません。以前の3つのURLは3つの新しいURLにリダイレクトされることになっていますか?それらは同等ではないようです。

于 2012-12-08T01:23:31.130 に答える
1

ページを301リダイレクトするには、次のようにします。

RewriteEngine On
RewriteBase /

RewriteRule ^(\w+)/(\w+)$ /jobs/$2-jobs-$1 [R=301,L]

これは、以前の構造のURLのみに対応します(組み合わせ、場所またはカテゴリのみの以前のURLは表示されていません)が、そのままCanada残りCanada、にはなりませんcanada。rewriteを使用して、すべてを小文字に変更することもできます。

また、現在のURLを書き直さないように注意する必要がありますが、それ以上の情報がなければ、これでうまくいくはずです。

編集:場所のみのURLの場合、次のようなルールを使用できます。

RewriteRule ^(\w+)/$ /jobs/jobs-$1 [R=301,L]

繰り返しになりますが、書き換えルールが現在のURLに干渉しないことに注意する必要があります。その場合は、すべての古いURLを手動でリダイレクトする必要があります。

小文字の新しいURLについては、SOを検索する必要があります。大文字と小文字を小文字に変換することについて、適切な回答が得られる質問がいくつかあります。

于 2012-12-08T01:28:04.587 に答える