2015-05-21 2 views
0

По каким-то причинам мои страницы не перенаправляются. Я пытаюсь использовать приведенный ниже код в файле htaccess.Basic 301 Код переадресации не работает

# 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 

RewriteEngine On 
Options +FollowSymLinks 

RedirectMatch 301 ^/([^-]+)-([^-]+)-([^-]+)-([^-]{2})\.html$ /$1-$2-in-$3-$4.html 
RedirectMatch 301 ^/([^-]+)-([^-]+)-([^-]+)\.html$ /$1-$2-in-$3.html 

# 301 --- http://www.domain.com/music-classes-san-diego-ca.html => http://www.domain.com/music-classes-in-san-diego-ca.html 
RewriteRule ^music-classes-san-diego-ca\.html$ /music-classes-in-san-diego-ca.html? [L,R=301] 

301 перенаправление - это то, что я пытаюсь получить на работу. Это не перенаправление для меня. Я также попытался это:

redirect 301 music-classes-san-diego-ca.html http://www.domain.com/music-classes-in-san-diego-ca.html 

ответ

1

Каждый раз, когда вы используете WordPress, эти правила всегда должен идти последним, потому что он направляет все к index.php. Попробуйте свои правила перед правилами Wordpress. FYI, я лично буду использовать Rewrite для всех 301-х, а не смешать их с RedirectMatch.

Options +FollowSymLinks 

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteRule ^music-classes-san-diego-ca\.html$ /music-classes-in-san-diego-ca.html? [L,R=301] 

RedirectMatch 301 ^/([^-]+)-([^-]+)-([^-]+)-([^-]{2})\.html$ /$1-$2-in-$3-$4.html 
RedirectMatch 301 ^/([^-]+)-([^-]+)-([^-]+)\.html$ /$1-$2-in-$3.html 

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

Большое спасибо! Это сработало! – user1858780

+0

@ user1858780 без проблем рад, что это сработало. Будьте отмечены ответом. –

+0

сделано! :) У меня есть еще один вопрос, связанный с кодом htaccess. 'RedirectMatch 301 ^/([^ -] +) - ([^ -] +) - ([^ -] +) - ([^ -] {2}) \. Html $/$ 1- $ 2-in- $ 3 - $ 4.html RedirectMatch 301 ^/([^ -] +) - ([^ -] +) - ([^ -] +) \. Html $/$ 1- $ 2-in- $ 3.html' выше кода перенаправляет music-classes-dallas-tx на music-classes-in-dallas-tx, а также перемещает music-classes-texas в music-classes-texas. Он охватывает город и штат. Я не могу понять, как заставить его работать с городами, в которых есть два слова, например, Сан-Антонио. Каким будет для этого код переадресации? что это возможно? – user1858780

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