2014-01-23 2 views
1

Я понял, как перенаправить моим друзьям старые блоггера архивы своих новых WordPress архивы с .htaccess, как это:301 редиректа, который игнорирует параметры URL

RewriteEngine On 

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

#Redirect to WP archive 
RedirectMatch 301 ^/([0-9]{4})_([0-9]{2})_([0-9]{2})_archive.html$ /$1/$2/$3 

Однако, если человек пытается получить доступ к старому архиву с параметр m = 1 (http://www.mydomain.com/2010_04_01_archive.html?m=1), он не перенаправляется! Мы хотим, чтобы игнорировать все возможные параметры, и он перенаправлять так же, как выше, http://www.mydomain.com/2010/04/01/

Попробованного, но это не работает:

RewriteEngine On 

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

# END WordPress 

RewriteCond %{QUERY_STRING} ^(.*)$ 
RewriteRule ^/([0-9]{4})_([0-9]{2})_([0-9]{2})_archive.html$ /$1/$2/$3 [R] 

Спасибо за вашу помощь! Аманда

ответ

0

Попробуйте этот код:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteRule ^([0-9]{4})_([0-9]{2})_([0-9]{2})_archive\.html$ /$1/$2/$3? [L,R=301,NC] 

RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 
# END WordPress 
+0

Это сработало! Большое спасибо - проблема решена! – user3220614

+0

Замечательно, что вы можете отметить ответ, как принято сейчас. – anubhava

0

Удалите первый/и $.

RewriteRule ^([0-9]{4})_([0-9]{2})_([0-9]{2})_archive.html /$1/$2/$3 [R=301] 
+0

Спасибо, но это не сработало ... – user3220614

+0

Вам нужно удалить/в начале. (Я отредактировал мой ответ) – Robalni

Смежные вопросы