@4upik

Как написать разные правила для разных URLов в .htaccess?

Как написать для урл со следующими ссылками:

домен.ru/blog/
домен.ru/board/
домен.ru/forum/
Правило: вместо .htm заканчивать ссылку без расширения .htm (пример: домен.ru/blog/302513).

А для всех остальных ссылок правило для назначения ссылок в виде названия записи для WP:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Проблема возникла из-за старого архива сайта на .htm и нового на уже на wp.
Весь старый сайт залит из архива, и необходимо сохранить URL старых и совместить с настроенными на WP.

Подсказали так :

RewriteEngine On
RewriteBase /
RewriteRule ^blog/(.*)\.htm /blog/$1 [R,L] # преобразовали на ссылку без htm и переправили на нее
RewriteRule ^blog/(.*) - [L] # если открываем из папки blog, то ничего не делать
RewriteRule ^board/(.*)\.htm /board/$1 [R,L]
RewriteRule ^board/(.*) - [L]
RewriteRule ^forum/(.*)\.htm /forum/$1 [R,L]
RewriteRule ^forum/(.*) - [L]
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

но так wp url отображаются нормально, а с архива в .htm отображается ошибка и не работает
  • Вопрос задан
  • 2420 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ugodrus
RewriteEngine On 
RewriteBase / 

RewriteCond %{REQUEST_URI} ^/(blog|board|forum)/(.+)(\.html?)?$
RewriteRule .* /%1/%2 [R,L]

RewriteRule ^index.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* /index.php [L]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы