使用htaccess从子目录访问服务器


Using htaccess to server from subdirectory

我正在设置一个WordPress开发环境,并对DocumentRoot的目录结构有这个想法;

.htaccess
tags
  - 2.8
  - 2.9
  - 3.0

我的想法是使用mod重写来切换不同的标签目录,但到目前为止,我还没有成功地设置它。这是我目前为止写的;

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /tags/3.2/index.php [L]

在我的VirtualHost指令中有以下内容;

AllowOverride all
Order allow,deny
Allow from all
Options Indexes FollowSymLinks
DirectoryIndex index.php

但是我得到的只是浏览器中的目录列表和apache日志中的错误信息;

[Fri Nov 25 18:44:44 2011] [error] [client 127.0.0.1] client denied by server configuration: /opt/local/apache2/htdocs/vhosts/wordpress/.htaccess

检查这个文件,这是Apache说访问被拒绝的地方:

/opt/local/apache2/htdocs/vhosts/wordpress/.htaccess

如果那是你的VirtualHost指令所在的地方,那么在那个文件中还有别的东西禁止访问。还要记住,当您更改实际Apache目录中的文件时,最好重新启动Apache以确保更改生效。有时配置可以包含适用于所有事物的一般规则,等等。浏览整个文件,确保没有任何内容与您要执行的操作相冲突。

例如,当您安装phpMyAdmin时,默认安装的。htaccess文件是一行读取Deny from all。我花了整整10-15分钟才弄明白。