Я пытаюсь указать www.olddomain.com/wh независимо на www.newdomain.com/wh независимо (а также без www.), Но постоянные ссылки Wordpress не остаются нетронутыми.Пожалуйста, помогите !!
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] RewriteCond %{HTTP_HOST} ^olddomain.com [nc] RewriteRule ^(.*)$ http://www.newdomain.com/$1 [r=301,nc] RewriteCond %{HTTP_HOST} ^www.olddomain.com [nc] RewriteRule ^(.*)$ http://www.newdomain.com/$1 [r=301,nc] </IfModule>
Я это исправил:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^olddomain.com [nc] RewriteRule ^(.*)$ http://www.newdomain.com/$1 [r=301,nc,L] RewriteCond %{HTTP_HOST} ^www.olddomain.com [nc] RewriteRule ^(.*)$ http://www.newdomain.com/$1 [r=301,nc,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
Гораздо более простое решение.Измените .htaccess, чтобы просто сказать:
RedirectMatch 301 /(.*) http://www.newdomain.com/$1
Вам нужно будет переместить этот блок:
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]
за перенаправлениями.Он захватывает все и отправляет его на index.php.