Mod-Rewrite

Mediawiki 將現有的 wiki 頁面遷移到 shortURL 而不會影響 SEO(保留舊連結)

  • March 15, 2015

按照以下步驟:

http://www.mediawiki.org/wiki/Manual:Short_URL
http://www.mediawiki.org/wiki/Manual:Short_URL/Apache

我已經從 URL 遷移了我的 wiki 頁面:

http://acacha.org/mediawiki/index.php/ARTICLENAME

http://acacha.org/mediawiki/ARTICLENAME

例如,現在要查看 Apache 文章,您可以訪問:

http://acacha.org/mediawiki/Apache

但現在我的問題是以下舊連結:

http://acacha.org/mediawiki/index.php/Apache

Mediawiki 將 thar 解釋為名為“index.php/Apache”的文章。我不介意不能寫以 index.php/ 開頭的文章,但對於 SEO,舊連結重定向到新連結非常重要。例如我想從 URL 重定向:

http://acacha.org/mediawiki/index.php/Apache

http://acacha.org/mediawiki/Apache

我目前的配置是:

Apache VirtualHost(文件 /etc/apache2/conf-available/mediawiki.conf)。跟隨:

ServerName acacha.org
ServerAlias www.acacha.org
DocumentRoot /var/lib/acacha_mediawiki

php_value upload_max_filesize  20M

#DOES NOT WORK:
#AliasMatch ^/mediawiki/index.php(.*) /var/lib/acacha_mediawiki/w/index.php

<Directory /var/lib/acacha_mediawiki/>
       #If this is uncommented new files uploaded give a Forbidden Error. Example:
       # http://acacha.org/mediawiki/upload/c/c0/Francesc_fores_identity.png --> SOLVED ADDING +SymLinksIfOwnerMatch above
       Options +FollowSymLinks +SymLinksIfOwnerMatch
       AllowOverride All

       ## http://www.mediawiki.org/wiki/Manual:Short_URL/Apache
       # Enable the rewrite engine
       RewriteEngine On
       LogLevel alert rewrite:trace2

       # Short url for wiki pages: old pages
       #DOES NOT WORK:
       #RewriteRule ^/?mediawiki/index.php(/.*)?$ %{DOCUMENT_ROOT}/w/index.php [L,QSA]
       #RewriteRule ^/?mediawiki/index.php/(.*)$ %{DOCUMENT_ROOT}/w/index.php/$1 [L,QSA]

       # Short url for wiki pages
       RewriteRule ^/?mediawiki(/.*)?$ %{DOCUMENT_ROOT}/w/index.php [L,QSA]

       # Redirect / to Main Page
       RewriteRule ^/*$ %{DOCUMENT_ROOT}/w/index.php [L,QSA]

       Require all granted

</Directory>
...

Mediawiki 安裝在:

/var/lib/acacha_mediawiki/w

和 LocalSettings 文件:

...
define('MW_INSTALL_PATH','/var/lib/acacha_mediawiki/w');
...
$wgScriptPath       = "/w";
$wgScriptExtension  = ".php";

$wgArticlePath      = "/mediawiki/$1";
$wgUsePathInfo = true;
...

是否可以將現有的 mediawiki 頁面遷移到短 URL 並創建從舊 URL 到新 URL 的重定向?

行。我找到了解決辦法。我添加了一個重定向匹配:

RedirectMatch 301 /mediawiki/index.php$ http://acacha.org/mediawiki/Main_Page
RedirectMatch 301 /mediawiki/index.php/(.*) http://acacha.org/mediawiki/$1

前:

<Directory /var/lib/acacha_mediawiki/>

引用自:https://serverfault.com/questions/675507