1

新しいドメインにリダイレクトしようとしている WordPress ブログがあります。301 リダイレクトは機能しますが、newdomain.com/new-post ではなく、newdomain.comnew-post にリダイレクトされます。

どういうわけか、それはスラッシュを取り除いています。コードは次のとおりです。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Redirect 301 /old-post/ http://www.newdomain.com/new-post/

私は何が欠けていますか?

4

2 に答える 2

0

サイトでリダイレクトが発生していない限り、これは発生しないはずwww.newdomain.comです。そうなっていないことを確認する必要があります。

別の可能性としては、mod_alias (Redirectディレクティブ) と mod_rewrite (ワードプレスのすべての書き換え規則) が互いに干渉している可能性があります。両方とも同じ URI に適用されます (/old-post/同じ URL ファイル マッピング プロセス パイプラインにあるRedirect場合)。wordpress のルールがまったく適用される前に、を削除して mod_rewrite に固執することができます。次のようなものを試してください。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^old-post/(.*)$ http://www.newdomain.com/new-post/$1 [L,R=301]
</IfModule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
于 2012-10-01T23:17:27.710 に答える
0

これはまさにこのシナリオの解決策ではないかもしれませんが、リダイレクト先の URL からスラッシュ文字が削除されるという問題は解決しました。

私のコードはこれに似ていました:

Redirect 301 / http://www.newdomain.com
Redirect 301 /old-post/ http://www.newdomain.com/new-post/

解決策は、最初の行の後にスラッシュを追加することでした:

Redirect 301 / http://www.newdomain.com/
Redirect 301 /old-post/ http://www.newdomain.com/new-post/

試してみることもできます:

Options +FollowSymlinks
RewriteEngine on
RedirectMatch 301 ^/old-post/ http://www.newdomain.com/new-post/
于 2021-02-06T11:20:01.607 に答える