复杂的 .htaccess 重写

Complex .htaccess rewrite

能否让我知道 htaccess 代码以重定向到 urls:

  1. https://www.example.com/forum/news/state-news/archive to https://www.example.com/forum/news/state-news?archive=yes

  2. https://www.example.com/forum/news/state-news/city-news/archive to https://www.example.com/forum/news/state-news/city-news?archive=yes

  3. https://www.example.com/forum/news/state-news/city-news/area-news/archive to https://www.example.com/forum/news/state-news/city-news/area-news/?archive=yes

我试过的 htaccess 文件是:

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteRule ^(core/libraries/|includes|core/includes|core/vb|core/vb5|core/admincp|core/modcp) index.php?routestring=relay/404 [END]
RewriteRule ^css.php$ core/css.php [NC,L]
RewriteRule ^install/ core/install/ [NC,L]

RewriteCond %{REQUEST_URI} !\.(gif|jpg|jpeg|png|css)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?routestring= [L,QSA]
</IfModule>

按照以下方式获取您的 htaccess 规则文件。我已经专门介绍了您在问题中显示的 3 个 URL。请确保您使用这些规则并确保在测试您的 URL 之前清除浏览器缓存。

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteRule ^(core/libraries/|includes|core/includes|core/vb|core/vb5|core/admincp|core/modcp) index.php?routestring=relay/404 [END]
RewriteRule ^css\.php$ core/css.php [NC,L]

####I have commented below rule that doesn't make sense, since NO right part in it only condition is mentioned.
####RewriteRule ^install/core/install/ [NC,L]

###New rules added by me to handle 3 different URLs shown by OP in question.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(forum/news/state-news(?:(?:/city-news(?:area-news))))/(archive)/?$ ?=yes [NC,QSA,L]

RewriteCond %{REQUEST_URI} !\.(gif|jpg|jpeg|png|css)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/?$ index.php?routestring= [L,QSA]

</IfModule>