【问题标题】:.htaccess doesn't work on VirtualHost.htaccess 在 VirtualHost 上不起作用
【发布时间】:2014-10-30 21:33:27
【问题描述】:

自从我设置了 wildcard VirtualHost 我的 htaccess 文件不再工作

http-vhosts.conf

NameVirtualHost *

<VirtualHost *:80>
    ServerName default.dev
    VirtualDocumentRoot /Users/[UserName]/Sites/%-2
    <Directory /Users/[UserName]/Sites/%-2>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

.htaccess(WordPress 默认)

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

我可以访问 http://wordpress.dev 和后端,但不能访问像 http://wordpress.dev/page 这样的页面(导致 404 错误)。
我可以将永久链接结构设置为默认值,但我想要“漂亮的 URL”

我在 Mac OS X 10.10 和 Apache 2.4 的本地开发环境中

【问题讨论】:

  • 我假设您描述的生活在/Users/[UserName]/Sites/wordpress/.htaccess/Users/[UserName]/Sites/wordpress/index.php 的.htaccess 也存在?
  • 是的,之前我手动单独添加每个虚拟主机时它工作过

标签: wordpress .htaccess mod-rewrite


【解决方案1】:

将您的 VirtualHost 定义更改为:

<VirtualHost *:80>
    ServerName default.dev
    VirtualDocumentRoot /Users/[UserName]/Sites/%-2
    <Directory /Users/[UserName]/Sites>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

即,将目录定义根植到站点,而不是虚拟目录。

【讨论】:

  • 就是这个!非常感谢您的时间(再次)。
猜你喜欢
  • 2017-04-15
  • 2012-12-31
  • 2013-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-24
  • 2017-08-07
相关资源
最近更新 更多