我已经在单个域中同时安装了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
的根目录。但是我不知道该怎么做。