Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Изменен ЧПУ. Правильный редирект. IPB 3.4.6

Опубликовано:

Доброго дня всем.

Дурная голова (рукам) ногам покоя не дает...

Решил поменять немножко вид ссылок.

Было:

сайт/topic/104-tema/ стало /topic104/

сайт/forum/12-forum/ стало /forum12/

Так увлекся сменой урлов, что забыл про ошибку 404 в выдаче. Как правильно организовать 301 редирект? Очень надеюсь на вашу помощь. Спасибо.

Рекомендованные сообщения

Опубликовано:

Добавить после RewriteEngine On

 

RewriteRule ^(topic|forum)/(\d+)-[^/]+/(.*) /$1$2/$3 [R=301,L]

Опубликовано:
  • Автор

500 ошибка встает, если добавлю после RewriteEngine On

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://alcogolik.net/ [R=301,L] 
RewriteRule ^home\.php$ http://alcogolik.net/ [R=301,L] 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(jpeg|jpg|gif|png)$ /public/404.php [NC,L]

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

</IfModule>

 

Все. Заработало. Спасибо огромное!

Изменено пользователем salex

Опубликовано:

Пардон, пропустил имя директивы. В данном случае можно даже добавить после RewriteBase

Опубликовано:
  • Автор

топики заработали, а форумы нет.

 

З.Ы. Посмотрел, что еще в индексе несколько есть старых ссылок в виде

сайт/f12/

а сейчас /forum12/

Опубликовано:

Почистите кеш браузера. Если работают темы то должны работать и форумы. Собственно я вижу что редирект у форумов есть.

Опубликовано:
  • Автор

Да. Со старых редирект есть. Это просто гугл уж такой быстрый, что пока я правил ЧПУ и напортачил вместо /topic/ - оставил /t/, а /forum/ - /f/ думал так еще уменьшить длину урл. Назад вернул, а гугл уже проиндексировал. И сейчас в индексе у гугла

сайт/t104/

сайт/f12/

В яндексе все нормально. Он даже и не узнал, что я что-то менял)) Там редирект отрабатывает сейчас на все 100%.

Опубликовано:

Там же ниже добавить

 

RewriteRule ^t(\d+)/(.*) /topic$1/$2 [R=301,L]

RewriteRule ^f(\d+)/(.*) /forum$1/$2 [R=301,L]

Опубликовано:
  • Автор

Все. Все отлично теперь. Большое спасибо за помощь!

  • 1 год спустя...
Опубликовано:
  • Автор

Еще один вопрос по редиректу, если можно)

Как правильно перенаправить к примеру с topic/page12/ на topic/?page=12

Опубликовано:

RewriteRule ^topic/page(\d+)/ /topic/?page=$1

Опубликовано:
  • Автор

что-то не выходит..

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule ^topic/page(\d+)/ /topic/?page=$1 [R=301,L]
RewriteRule ^(topic|forum)/(\d+)-[^/]+/(.*) /$1$2/$3 [R=301,L] 
RewriteRule ^t(\d+)/(.*) /topic$1/$2 [R=301,L]
RewriteRule ^f(\d+)/(.*) /forum$1/$2 [R=301,L] 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(jpeg|jpg|gif|png)$ /public/404.php [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Изменено пользователем salex

Опубликовано:
  • Автор

Не правильно я спросил...

Если topic12/page12/

Так не правильно?

RewriteRule ^topic(\d+)/page(\d+)/ /topic$1/?page=$1 [R=301,L] 

Изменено пользователем salex

Опубликовано:

RewriteRule ^topic(\d+)/page(\d+)/ /topic$1/?page=$2 [R=301,L]

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.