我读了所有其他类似的问题,但不明白如何设置它,所以我的旧页面重定向了。
这是我的设置:
我的旧站点页面:
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并遇到同样的问题!