【发布时间】:2015-02-16 16:59:24
【问题描述】:
我的 VirtualDocumentRoot 工作正常,但我想阻止通过 VirtualHost 指令访问每个文档根目录中的特定文件夹,因此我不需要每个文档根目录中的 .htaccess 文件,但我可以'似乎没有得到阻止工作。 (虚拟主机完美运行,但我可以通过浏览器直接访问 wp-includes,我应该无法访问。
这是我所拥有的:
<VirtualHost 127.0.0.1:80>
UseCanonicalName Off
ServerName default
ServerAlias *
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
RewriteRule ^/(.*)$ "/Users/me/My Sites/%2/wordpress/$1"
VirtualDocumentRoot "/Users/me/My Sites/%0/wordpress"
<Directory "/Users/me/My Sites/*/wordpress">
RewriteEngine On
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
Options -Indexes +FollowSymLinks +Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
浏览到 domain.com/wp-includes 应该提供一个禁止页面,但我创建了目录并在其中放置了一个 index.php,我可以直接浏览到它并查看输出。
如果我将重写(从目录)放入 wordpress 目录中的 .htaccess 文件中,它可以正常工作。但是一旦我把它放入目录...bupkis。
有什么想法我哪里出错了吗?
【问题讨论】:
标签: wordpress apache .htaccess mod-rewrite virtualhost