Как сделать перенаправление в htaccess

id0777

Создатель
Регистрация
24 Апр 2019
Сообщения
10
Реакции
1
Всем добра!
Подскажите как сделать правильно перенаправление
в общем есть форум ipb у него есть страница Для просмотра ссылки Войди или Зарегистрируйся нужно сделать так чтобы Для просмотра ссылки Войди или Зарегистрируйся вел на нее т.е. производилась подстановка

<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(js|css|jpeg|jpg|gif|png|ico|map|webp)(\?|$) /404error.php [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(js|css|jpeg|jpg|gif|png|ico|map|webp)(\?|$) /404error.php [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^id([0-9]+)$ /page/ [L,QSA]
</IfModule>
но не работает

Буду рад помощи подскажите что именно не так для понимания
 
Попробуйте такой вариант кода
Код:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteRule ^id1$ /page/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(js|css|jpeg|jpg|gif|png|ico|map|webp)(\?|$) /404error.php [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
 
Чтобы перенаправление заработало, нужно учитывать, что порядок правил имеет значение, и правильно задавать регулярное выражение для перенаправления. Также можно использовать параметр R=301 для выполнения редиректа, если требуется постоянное перенаправление. В вашем случае, перенаправление должно происходить прежде, чем другие правила, чтобы оно не перекрывало основное правило RewriteRule . /index.php [L].

Попробуйте использовать следующий вариант:

Код:
apache
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /

# Перенаправление с /idX на /page/
RewriteRule ^id([0-9]+)$ /page/ [L,QSA,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(js|css|jpeg|jpg|gif|png|ico|map|webp)(\?|$) /404error.php [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Объяснение изменений:​

  1. Порядок правил: Добавил правило перенаправления в начало, перед остальными правилами, чтобы оно обрабатывалось первым.
  2. Флаг R=301: Используется для указания постоянного перенаправления (можно убрать, если временное).
  3. Проверка RewriteCond %{REQUEST_FILENAME} !-f и RewriteCond %{REQUEST_FILENAME} !-d: Эти условия позволяют обрабатывать только виртуальные пути, а файлы и директории обрабатывать отдельно.
После внесения изменений очистите кэш браузера, так как редиректы могут кэшироваться.
 
Назад
Сверху