Удалить части URL и перенаправить на конкретную страницу сайта - PullRequest
0 голосов
/ 25 января 2019

У меня есть игровой сайт, который недавно перешел на WordPress, теперь я хочу перенаправить старый URL-адрес на новый.Вот пример:

Старый URL - https://www.website.com/fighting/stick-fighter.html Новый URL - https://www.website.com/stick-fighter/

Я исправил это, создав это в htaccess:

Redirect 301 / fight/stick-fighter.html / stick-fighter /

Но в моих играх более 500 с разными категориями, поэтому я не хочу кодировать каждую игру в htaccess.Есть ли способ удалить категорию в URL, которая является «боевой» и удалить расширение «.html»?

1 Ответ

0 голосов
/ 25 января 2019
^(?<base>https?://www.website.com/)(?<catgory>fighting/)(?<page>.+?)(?<extension>\.html)$

Затем объедините группу «base» и «page»

Я использую C # следующим образом:

string s1 = Regex.Replace(oldUrl, @"^(?<base>https?://www.website.com/)(?<catgory>fighting/)(?<page>.+?)(?<extension>\.html)$", @"$1$3/");

Для перенаправления URL-адреса необходимо включить перенаправление Apache, включив«AllowOverride» в httpd.conf:

  • Изменить AllowOverride с None на все

    Options FollowSymLinks 
    AllowOverride All
    
  • Загрузить модуль перенаправления

    LoadModule rewrite_module modules/mod_rewrite.so
    
  • Изменить / добавить правило перезаписи

    <VirtualHost *:80>
        RewriteEngine On
        RewriteRule ^(?<base>https?://www.website.com/)(?<catgory>fighting/)(?<page>.+?)(?<extension>\.html)$ $1$3/ [L]
    </VirtualHost>
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...