Я перемещаю веб-сайт на 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.06.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.06.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)
code
RewriteCond %{REQUEST_URI} ^section/individual-page.html [NC] RewriteRule ^(.*)$ mydomain.com/wp-install/section/individual-page.htm/$1 [L,R=301] Думаю, я на правильном пути. [NC] должен игнорировать регистр, верно? - person user801816   schedule 17.06.2011