Как перенаправить URL-адреса статей блога?

Я пытаюсь перенаправить несколько старых URL-адресов статей в блогах, используя .htaccess файл:

RedirectMatch ^/index\.php/global/article/(.*)$ http://www.mywebsite.com/blog/article/$1

Это не очень работает, потому что моя CMS, кажется, запуталась index.php немного и продолжает добавлять ?symphony-page= на все URL.

Это, вероятно, эта часть, которая несет ответственность:

### FRONTEND REWRITE - Will ignore files and folders
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*\/?)$ index.php?symphony-page=$1&%{QUERY_STRING}    [L]

Кто-нибудь может помочь?

2 ответа

Решение

Пожалуйста, попробуйте следующее (комментарии включены, чтобы объяснить):

RewriteEngine On

# First, redirect the old URIs to the new ones via a 301 redirect.
# This will allow the CMS to take over using the rules that follow.
RewriteRule ^index.php/global/article/(.+)$ /blog/article/$1 [L,R=301]

# Frontend Rewrites - for the CMS
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*\/?)$ index.php?symphony-page=$1&%{QUERY_STRING} [L]

Попробуй это:

#-- Input URL >>  http://www.mywebsite.com/index.php/global/article/abc


### FRONTEND REWRITE - Will ignore files and folders
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*\/?)$ index.php?symphony-page=$1&%{QUERY_STRING}

RewriteCond %{REQUEST_URI} ^/index\.php/global/article/(.*)$
RewriteRule ^.*$ blog/article/%1  [R=301, L]


#--Output URL >>  http://www.mywebsite.com/blog/article/abc

Я протестировал вышеупомянутое с этим h ttp://htaccess.madewithlove.be/ и похоже, что он будет работать просто отлично, надеюсь, он будет работать и для вас

Скриншот:

введите описание изображения здесь

Другие вопросы по тегам