MAMP Mass Dynamics虚拟主机& Mod ReWrites

时间:2015-07-24 09:41:34

标签: php apache .htaccess virtual host

我正在运行MAMP堆栈并且有一些默认设置。 我一直试图避免在从MAMP中取出项目时改变任何重写条件,所以我看了一下动态大规模虚拟主机。根据我的阅读,这将允许我从MAMP Web根目录中的每个相应文件夹中提供项目作为localhost的子域。有了这个,每个项目都有自己的文档根目录。

example.localhost将成为Applications / MAMP / htdocs / example.localhost

我通过在httpd.conf中启用虚拟主机然后将以下内容添加到httpd-vhosts.conf来完成所有设置。

#
# Use name-based virtual hosting.
#
NameVirtualHost *:8888

<VirtualHost *:8888>
    ServerAdmin dev@example.com
    ServerName localhost
    ServerAlias *.localhost
    VirtualDocumentRoot /Applications/MAMP/htdocs/%0

    RewriteLogLevel 3
    RewriteLog "/Applications/MAMP/logs/rewrite.log"

    <Directory "/Applications/MAMP/htdocs">
        Options All
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

值得一提的是,我将httpd.conf中的默认端口设置为8888以避免冲突。

所以这一切都运行正常,但当我到达我的项目的任何部分,在目录中使用.htaccess文件并触发mod_rewrite时,它会执行重写并给我一个404.

通过一个简单的例子,使用.htaccess将.php添加到资源的末尾:  RewriteEngine On  RewriteCond%{REQUEST_FILENAME}! - f  RewriteRule ^([^。] +)$ $ 1.php [NC,L]

以下网址:   example.localhost / test / api / resource

应该变得像:  /Applications/MAMP/htdocs/example.localhost/test/api/resource.php

取而代之的是:  /Applications/MAMP/htdocs/example.localhost/example.localhost

这似乎是mod_rewrite应用文档根目录的一个问题,但我不知道如何配置它以确保文档根目录正确。我知道当应用.htaccess时,它会假设使用相对路径,但我没有使用任何前导斜杠或类似的东西。

这里重要的是我不必更改项目中的.htaccess文件,因为他们需要继续使用标准的apache设置。

我不是这些配置的专家,我在很大程度上是自学成熟的,所以任何帮助都会受到赞赏。

由于

0 个答案:

没有答案