web-dev-qa-db-ja.com

.htaccessを使用して、古いWordPress URL(クエリ文字列付き)を新しいURLにリダイレクトするにはどうすればよいですか?

WordPressサイトを静的なHTML Webサイトに転送しましたが、他のWebサイトには古いWordPressサイトmysite.com/?page_id=1103へのリンクがあります。

すべてのトラフィックをmysite.com/mypage.htmlという新しいURLにリダイレクトしたいのですが、。htaccessファイルでのリダイレクトが機能しません。誰かが。htaccessファイルのコード行を手伝ってくれるかもしれません。私は次のことを試しましたが、うまくいきませんでした:

Redirect 301 /?page_id=1103 http://mysite.com/mypage.html
4
user2161017

質問に答える記事

残念ながら、RedirectもRedirectMatchもリダイレクトソースのクエリ文字列を指定することはできません。つまり、次のステートメントは無効であり、単に無視されます。

Redirect /page.php?id=3  http://mydomain.site/page/3
Redirect /page.php?id=4  http://mydomain.site/page/4

RedirectMatch ^/page.php?id=([0-9]*)$  http://mydomain.site/page/$1

このソリューションでは、フォーカスをmod_aliasからmod_rewriteに変更する必要があります。以下に例を示します。

RewriteEngine On
RewriteCond %{REQUEST_URI}  ^/page\.php$
RewriteCond %{QUERY_STRING} ^id=([0-9]*)$
RewriteRule ^(.*)$ http://mydomain.site/page/%1.pdf [R=302,L]

あなたの場合、コードは次のようになります。

RewriteEngine On
RewriteCond %{REQUEST_URI}  ^/$
RewriteCond %{QUERY_STRING} ^page_id=1103$
RewriteRule .* http://mydomain.site/mypage.html [R=301,L]
3