.htaccess和301重定向(动态页面)WordPress



我读了所有其他类似的问题,但不明白如何设置它,所以我的旧页面重定向了。

这是我的设置:

我的旧站点页面:

http://www.oldsite.com/blog/?p=1234
http://www.oldsite.com/blog/?p=432
http://www.oldsite.com/blog/?p=xxxx

我想将前两个重定向:

http://www.oldsite.com/blog/?p=1234-> http://www.newsite.com/somewhere/on/on/on/mysite/
http://www.oldsite.com/blog/?p=432-> http://www.newsite.com/somewhere/else/else/else/on/mysite/

并拥有所有其他页面(123、321、567、999,...)将我的主页重定向到我的主页:
http://www.oldsite.com/blog/?p= * **** -> http://www.newsite.com/

预先感谢!

您需要使用mod_rewrite与查询字符串匹配的能力,但是所有规则都必须是 任何WordPress规则。

RewriteEngine On
# http://www.oldsite.com/blog/?p=1234 -> http://www.newsite.com/somewhere/on/mysite/
RewriteCond %{QUERY_STRING} ^p=1234$
RewriteRule ^/?blog/$ http://www.newsite.com/somewhere/on/mysite/ [L,R=301]
# http://www.oldsite.com/blog/?p=432 -> http://www.newsite.com/somewhere/else/on/mysite/
RewriteCond %{QUERY_STRING} ^p=432$
RewriteRule ^/?blog/$ http://www.newsite.com/somewhere/else/on/mysite/ [L,R=301]
# http://www.oldsite.com/blog/?p=***** -> http://www.newsite.com/
RewriteCond %{QUERY_STRING} ^p=[0-9]+$
RewriteRule ^/?blog/$ http://www.newsite.com/ [L,R=301]

我尝试了@jon lin代码,但它不适用于我的WordPress网站。我认为问题是我正在运行WordPress ...我应该包括我的.htaccess代码,但我并不认为WP是问题...

这是我必须做的才能使它起作用:因为它是WP网站,您需要将代码放入WP MOD_REWRITE中。这是我的.htaccess重定向之前:

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

和之后:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/blog/$
RewriteCond %{QUERY_STRING} ^p=998$
RewriteRule . /some/where/over-there? [L,R=301]
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

希望这将帮助其他人遇到WP并遇到同样的问题!

最新更新