Я перевожу веб-сайт в WordPress, но хочу сохранить текущую структуру URL для целей SEO.
Текущий сайт использует комбинацию файлов .htm и .html. Я нашел успех в перенаправлении на .htm, когда запрос .html.
Например
RedirectMatch 301 (.*)\wp-site/mywebpage.html$ http://www.mydomain.com/wp-site/mywebpage.htm
У меня проблема со следующим:
когда файл .html имеет верхний и нижний регистр. Я не могу найти решение, чтобы перенаправить любой запрос, несмотря на случай его эквивалент .htm
Например: My-Posts / Alpha-Page.html необходимо перенаправить на my-posts / alpha-page.htm или MY-POSTS / ALPHA-PAge.html перенаправляет на my-posts / alpha-page.htm ( или любой из «my-posts / alpha-page», который содержит прописные буквы. В основном все запросы, несмотря на то, что регистр должен быть перенаправлен на все строчные файлы .htm)
Я знаю, что это немного сложно, потому что это комбинация 1) Я перенаправляю на .htm и 2) для нечувствительности к регистру.
Несколько вещей для рассмотрения:
- Я знаю, что посты Wordpress
без учета регистра. Wordpress статический
страница чувствительна к регистру.
- Я знаю, что RedirectMatch не будет работать
потому что это точно соответствует.
- Я считаю, что мне нужно использовать RewriteCond
и RewriteRule, но не могу
найти "хороший" шаг за шагом
объяснения. Кроме того, я не
понять их переменные (то есть:
% {HTTP_HOSTS}) и обычный
соглашение о выражении.
- Я не Apache / .htaccess или
эксперт по регулярным выражениям любым
значит.
Теоретически, похоже, должен быть способ, чтобы это работало. Я буду продолжать проверять, смогу ли я найти решения здесь в stackoverflow или других внешних ресурсах, и если я действительно найду решение здесь в stackoverflow, я отмечу это как решенное и удалю его.
Любая помощь приветствуется!
Спасибо
ОБНОВЛЕНИЕ 17/17/2011:
Вот мой текущий файл .htaccess
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp-test-2011-06-13/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp-test-2011-06-13/index.php
RedirectMatch 301 (.*)\wp-test-2011-06-13/redirect.html$ http://www.mydomain.com/wp-test-2011-06-13/redirect.htm
RewriteRule ^ORLANDO-criminal-defense-attorney/defense-attorney-NEJAME.html$ /orlando-criminal-defense-attorney/defense-attorney-nejame.htm [QSA,NC,R=301]
</IfModule>
# END WordPress
ОБНОВЛЕНИЕ 20/20/2011:
Вот мой текущий файл .htaccess:
# BEGIN WordPress
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteBase /wp-test-2011-06-13/
RewriteRule ^/wp-test-2011-06-13/index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /wp-test-2011-06-13/index.php
RedirectMatch 301 (.*)\wp-test-2011-06-13/redirect.html$ http://www.mydomain.com/wp-test-2011-06-13/redirect.htm
RewriteRule ^ORLANDO-criminal-defense-attorney/defense-attorney-NEJAME\.html$ /orlando-criminal-defense-attorney/defense-attorney-nejame.htm [QSA,NC,R=301]
</IfModule>
# END WordPress
Я получаю страницу WordPress «Страница не найдена», когда я набираю http://www.mydomain.com/wp-test-2011-06-13/ORLANDO-criminal-defense-attorney/defense-attorney-NEJAME.html (или строчный эквивалент с .html)