0

私はフォーラムのある Web サイトを持っており、htaccess ファイルの現在の書き換えルールは次のとおりです。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*/?forum/?(.*)$ /forum.php [L]

そのため、次のような Google によってインデックス化された URL があります。

www.domain.com/abc/forum/rest-of-url  
www.domain.com/defg/forum/rest-of-url   
www.domain.com/something-else/forum/rest-of-url 

すべてのリンクは同じページを表示しています。これは次のようにのみアクセスする必要があります。

www.domain.com/forum/rest-of-url 

domain/ と /forum/ の間に単語 (abc、defg など) を入れない

基本的にこのリンクのようなもの:

www.domain.com/abc/forum/rest-of-url

301 リダイレクトにする必要があります。

www.domain.com/forum/rest-of-url 

書き換えルールを次のように変更してみました。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule /forum/?(.*)$ /forum.php [L]

しかしその後、以前にインデックスを作成したすべての URL に対して Google ウェブマスター ツールで多くの 404 エラーが発生するため、301 リダイレクトで回避策があると思いますが、ループを回避する方法がわかりません。

どんな助けでも大歓迎です。ありがとう

4

1 に答える 1

0

mod_rewrite と .htaccess を有効にしてからhttpd.conf、このコードをディレクトリの.htaccess下に配置します。DOCUMENT_ROOT

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

# redirect any /foo/forum/index to /forum/index
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[^/]+/(forum/[^/]+/?)$ /$1 [L,R=301,NC]

正常に動作していることを確認したら、 に置き換えR=302ますR=301R=301mod_rewrite ルールをテストしている間は (Permanent Redirect) を使用しないでください。

于 2013-05-29T19:14:43.817 に答える