将旧的mediawiki URL模式重写为简短的URL格式

时间:2014-11-19 12:10:37

标签: apache mod-rewrite mediawiki

我们多年来一直在运行mediawiki安装。在升级到较新版本的过程中,我们决定切换到维基百科使用的short url模式。这很好。

所以我们的配置文件现在看起来像这样

  # Enable the rewrite engine
  RewriteEngine On

  # Short url for wiki pages
  RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
  RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
  RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/index.php [NC]

如mediawiki的文档中所述。

但我们在其他地方有一些旧的网址,我们仍然愿意支持。

旧网址如下所示:

wiki.domain.com/wiki/Index.php/articlename

现在这个网址如下所示:

wiki.domain.com/wiki/articlename

但是使用旧网址,现在只是找不到找到的网页。

我们尝试使用online htaccess tester找到正确的RewriteRule。我们让它在那里工作。但不是在我们的apache服务器配置中使用它时。

在RewriteEngine On:

之后立即尝试使用此规则
RewriteRule ^(.*?)index\.php(/|$) /$1 [R=301,NC,NE]

应该将用户重定向到新的网址。但我们仍然得到页面未找到错误,并且URL看起来仍然相同。 我们的新重写规则是错误的,还是apache配置中可能存在其他错误。如果需要,将提供配置文件。

1 个答案:

答案 0 :(得分:0)

结束这条规则:

RewriteRule ^(.*?)index\.php\/(.*) $1$2 [L,NC,R=301]

选择index.php之前和之后的部分并使用()存储它们。使用$ 1和2创建新的URL字符串。我确信有更好的解决方案,但这也有效。