Mod-Rewrite
Mediawiki 將現有的 wiki 頁面遷移到 shortURL 而不會影響 SEO(保留舊連結)
按照以下步驟:
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/>