重写规则以处理同一域中的MediaWiki和Wordpress安装

时间:2018-10-07 15:16:36

标签: php wordpress apache .htaccess mediawiki

我已经在单个域中同时安装了wordpress和mediawiki,

  • (domain root)/wp(wordpress安装目录)

  • (domain root)/wiki(mediawiki安装目录)

我想实现的用例是,

  • www.domain.com->这应该加载www.domain.com/wp/index.php

  • www.domain.com/wiki/->这必须加载www.domain.com/wiki/index.php

我使用共享的虚拟主机,仅需使用.htaccess即可实现上述用例。

我目前有什么

/。htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteCond %{REQUEST_URI} !^/wp/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /wp/$1
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteRule ^(/)?$ wp/index.php [L] 
</IfModule>

/wp/.htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

/wiki/.htaccess

RewriteEngine On
RewriteRule ^/?wiki/page(/.*)?$ %{DOCUMENT_ROOT}/wiki/index.php [L]

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^/?wiki/images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/wiki/thumb.php?f=$1&width=$2 [L,QSA,B]

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^/?wiki/images/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/wiki/thumb.php?f=$1&width=$2&archived=1 [L,QSA,B]

当前所有的wordpress页面均正常运行。但是当我访问www.domain.com/wiki时,服务器会显示“未找到”错误页面。

我不熟悉所有这些重写规则。我猜必须修改.htaccess的根目录。但是我不知道该怎么做。

0 个答案:

没有答案