Где мешанина? :)
1. Я тут /ru/forum/comment/16162095 вам написал, что mod_rewrite полюбому будет загружаться. Хоть инклуд используйте, хоть в 1 обработчик перенаправлять.
2. Не получится т.к. все равно пройдет через mod_rewrite и WP, а WP сделает редирект c /?page=12 на /page/12/---------- Добавлено 21.08.2019 в 20:19 ----------Можно сделать, чтобы WP не делал такой редирект, но зачем, если можно вообще исключить WP...
и тогда полностью отключить навигацию по сайту? :)
Эту " RewriteRule ^index\.php$ - [L] " ?
RewriteRule разве не компонент mod_rewrite? :)
Если захотеть, можно и горы свернуть и лоб об стену разбить.---------- Добавлено 21.08.2019 в 18:06 ----------
средствами mod_rewrite ибо в apache по-другому не принято.
таким образом вы не сможете отказаться от mod_rewrite, потому что раньше был парсинг директив RewriteEngine RewriteBase RewriteRule.
В моем видении, нужно раньше определить запросы /?page=*** и для них отключить mod_rewrite, чтобы условие:
# BEGIN WordPress<IfModule mod_rewrite.c>
не срабатывало.
Ну это ляповство. Не думаю, что так кто-то делает. Мы используем mod_rewrite и довольствуемся.
ivan-lev, как? Покажите пожалуйста, я действительно буду благодарен.---------- Добавлено 21.08.2019 в 14:42 ----------Каким образом у вас получится исключить запросы /?page=([0-9]+) без mod_rewrite, чтобы это было действительно оптимально, но не "сделал - потому что хотелось сделать"?
Да, но mod_rewrite все равно будет загружен :)
# BEGIN WordPress<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]</IfModule># END WordPress
ivan-lev, в WP index.php занят.
А разве WP не использует mod_rewrite?
mod_rewrite в любом случае будет загружен, хоть делайте редирект через хуки WP, хоть через что-то еще.
У вас тут ошибка. Главная тоже будет редиретить на https://site.ru/detskiy-nevrolog/.
Можете так исправить:
RewriteCond %{QUERY_STRING} page=561 [OR]RewriteCond %{QUERY_STRING} page=520 RewriteRule ^/?$ https://site.ru/detskiy-nevrolog/? [R=301,L]
на стороне сервера такой якорь нельзя убрать.
как вы тогда без mod_rewrite перенаправите ссылки вида /?page=([0-9]+) в обработчик, чтобы:
Может я что-то не улавливаю?
Пожалуйста :)
От блин, все испортил 🤣
Так mod_rewrite полюбому будет загружаться. Хоть делайте на php, хоть через .htaccess. Удобнее конечно эти редиректы хранить не в .htaccess.
70 RewriteRule для каждого запроса и + 70 RewriteCond для главной - это много, я не знаю как это может сказаться.Мне самому больше нравится вариант с делегированием в обработчик, а он уже пусть разбирается, кого-куда перенаправлять.
RewriteBase /RewriteCond %{QUERY_STRING} ^/?page=RewriteRule ^/?$ page-redirect-handler.php [L]
Так вы не правильно их установили.
Пример:
RewriteCond %{QUERY_STRING} page=1050RewriteRule ^/?$ https://site.ru/narushenie-rechi/? [R=301,L]
И ставьте свои правила выше правил WP. Так они будут приоритетнее.
<IfModule mod_rewrite.c>RewriteEngine OnRewriteCond %{QUERY_STRING} page=1050RewriteRule ^/?$ https://site.ru/narushenie-rechi/? [R=301,L]RewriteCond %{QUERY_STRING} page=1054RewriteRule ^/?$ https://site.ru/lechenie-autizma/? [R=301,L]# и так далее...</IfModule># BEGIN WordPress<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]</IfModule># END WordPress
Конечно это не очень хорошо.---------- Добавлено 20.08.2019 в 20:11 ----------Кстати, если домен не поменялся, можете так сделать:
<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteCond %{QUERY_STRING} page=1050RewriteRule ^/?$ narushenie-rechi/? [R=301,L]RewriteCond %{QUERY_STRING} page=1054RewriteRule ^/?$ lechenie-autizma/? [R=301,L]# и так далее...</IfModule>
RewriteCond %{QUERY_STRING} ^/?page=1050$RewriteRule ^/?$ narushenie-rechi/? [R=301,L]