我正在从Manual:Short URL / Apache指南开始工作,在运行Apache2的Debian服务器上设置一个缩短了url的wiki。
我想通过currienet / wiki /(本地networking地址)访问目录/ var / www / currienet / w /
我在httpd.conf文件中有以下内容:
<VirtualHost *:80> ServerName http://currienet # !!! Be sure to point DocumentRoot to 'public'! DocumentRoot /var/www/currienet/root/ <Directory /var/www/currienet/root> Allow from all </Directory> <Directory /var/www/currienet/w/> </Directory> # Alias /wiki '/var/www/currienet/w' LogLevel debug # Enable the rewrite engine RewriteEngine On # Short url for wiki pages RewriteRule ^/?wiki(/.*)?$ /var/www/currienet/w/index.php [L] </VirtualHost>
并在LocalSettings.php中进行以下设置
$wgScriptPath = "/w"; $wgArticlePath = "/wiki/$1";
当我尝试访问currienet / wiki我得到的主页面显示,但没有图像,样式表等被加载,我得到以下在Apache错误日志(ip被阻止安全):
[Tue Oct ***.***.***.*** 2012] [notice] Apache/2.2.22 (Debian) Phusion_Passenger/3.0.17 PHP/5.4.4-2 configured -- resuming normal operations [Tue Oct ***.***.***.*** 2012] [error] [client ***.***.***.***] File does not exist: /var/www/currienet/root/w, referer: http://currienet/wiki/Main_Page [Tue Oct ***.***.***.*** 2012] [debug] mod_deflate.c(615): [client ***.***.***.***] Zlib: Compressed 283 to 216 : URL /w/load.php, referer: http://currienet/wiki/Main_Page [Tue Oct ***.***.***.*** 2012] [error] [client ***.***.***.***] File does not exist: /var/www/currienet/root/w, referer: http://currienet/wiki/Main_Page [Tue Oct ***.***.***.*** 2012] [debug] mod_deflate.c(615): [client ***.***.***.***] Zlib: Compressed 283 to 216 : URL /w/load.php, referer: http://currienet/wiki/Main_Page [Tue Oct ***.***.***.*** 2012] [error] [client ***.***.***.***] File does not exist: /var/www/currienet/root/w, referer: http://currienet/wiki/Main_Page [Tue Oct ***.***.***.*** 2012] [debug] mod_deflate.c(615): [client ***.***.***.***] Zlib: Compressed 283 to 216 : URL /w/load.php, referer: http://currienet/wiki/Main_Page [Tue Oct ***.***.***.*** 2012] [error] [client ***.***.***.***] File does not exist: /var/www/currienet/root/w, referer: http://currienet/wiki/Main_Page [Tue Oct ***.***.***.*** 2012] [debug] mod_deflate.c(615): [client ***.***.***.***] Zlib: Compressed 324 to 248 : URL /w/skins/common/images/poweredby_mediawiki_88x31.png, referer: http://currienet/wiki/Main_Page [Tue Oct ***.***.***.*** 2012] [debug] mod_deflate.c(615): [client ***.***.***.***] Zlib: Compressed 0 to 2 : URL /wiki/images/swan.png, referer: http://currienet/wiki/Main_Page [Tue Oct ***.***.***.*** 2012] [debug] mod_deflate.c(615): [client ***.***.***.***] Zlib: Compressed 11292 to 3748 : URL /wiki/Images/swan.png, referer: http://currienet/wiki/Main_Page
以及other_vhosts_access.log中的以下内容:
currienet:***.***.***.***.96 - - [02/Oct/2***.***.***.*** +0800] "GET /wiki/Main_Page HTTP/1.1" 304 276 "http://currienet/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1" currienet:***.***.***.***.96 - - [02/Oct/2***.***.***.*** +0800] "GET /w/load.php?debug=false&lang=en-gb&modules=mediawiki.legacy.commonPrint%2Cshared%7Cskins.vector&only=styles&skin=vector&* HTTP/1.1" 404 497 "http://currienet/wiki/Main_Page" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1" currienet:***.***.***.***.96 - - [02/Oct/2***.***.***.*** +0800] "GET /w/load.php?debug=false&lang=en-gb&modules=startup&only=scripts&skin=vector&* HTTP/1.1" 404 498 "http://currienet/wiki/Main_Page" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1" currienet:***.***.***.***.96 - - [02/Oct/2***.***.***.*** +0800] "GET /w/load.php?debug=false&lang=en-gb&modules=skins.vector&only=scripts&skin=vector&* HTTP/1.1" 404 498 "http://currienet/wiki/Main_Page" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1" currienet:***.***.***.***.96 - - [02/Oct/2***.***.***.*** +0800] "GET /w/skins/common/images/poweredby_mediawiki_88x31.png HTTP/1.1" 404 530 "http://currienet/wiki/Main_Page" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1" currienet:***.***.***.***.96 - - [02/Oct/2***.***.***.*** +0800] "GET /wiki/images/swan.png HTTP/1.1" 301 539 "http://currienet/wiki/Main_Page" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1" currienet:***.***.***.***.96 - - [02/Oct/2***.***.***.*** +0800] "GET /wiki/Images/swan.png HTTP/1.1" 404 4209 "http://currienet/wiki/Main_Page" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1" currienet:80 ::1 - - [02/Oct/2***.***.***.*** +0800] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Debian) (internal dummy connection)" currienet:80 ::1 - - [02/Oct/2***.***.***.*** +0800] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Debian) (internal dummy connection)"
你的Apacheconfiguration有一些问题。
ServerName http://currienet
这应该是没有http://的网站的域名
ServerName currienet.blah.com
这个目录块应该明确地声明它的选项和访问权限。
<Directory /var/www/currienet/w/> Order Allow,Deny Allow from all </Directory>
你已经注明了你需要的一行:
# Alias /wiki '/var/www/currienet/w'
另外,你应该在wiki上有一个结尾处的Alias行。
Alias /wiki/ '/var/www/currienet/w/'
现在,重写。 重写规则是将一个url映射到另一个url,而不是将url映射到一个目录。
# Short url for wiki pages RewriteRule ^/?wiki(/.*)?$ /var/www/currienet/w/index.php [L]
这不会做你所期望的(它会尝试服务于可能不存在的页面http://YOURSITE/var/www/currienet/w/index.php )。 如果你已经放置了Alias指令,并且已经正确设置了该目录的目录选项,那么你不需要任何重写规则。