mod_rewrite无法与vhost_alias_module和dnsmasq一起使用

这实际上不是我的专业领域,但是我刚刚遵循了有关如何使用vhost_alias_module的指南,以避免必须为每个项目创建虚拟主机,而是将每个请求都指向{{1} },http://*.testhttps://www.sitepoint.com/set-automatic-virtual-hosts-nginx-apache/

启用它非常容易,这就是我的httpd-vhosts.conf的样子:

/Users/powerbuoy/Sites/$DOMAIN_NAME

为避免将每个域名都添加到UseCanonicalName Off <VirtualHost *:80> ServerName vhosts.fqdn # NOTE: This wasn't explained in the guide so I left it as it was there,doesn't seem to make a difference what it is? ServerAlias *.test ServerAdmin webmaster@localhost VirtualDocumentRoot /Users/powerbuoy/Sites/%1 <Directory ~ "/Users/powerbuoy/Sites/.*"> # Not sure all of these are needed..? Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all Require all granted </Directory> ErrorLog "/private/var/log/apache2/sleek-error" CustomLog "/private/var/log/apache2/sleek-access" common </VirtualHost> ,我遵循了另一条指南:https://passingcuriosity.com/2013/dnsmasq-dev-osx/,我所做的只是/etc/hosts,请在brew install dnsmasq上添加一行:{{ 1}},最后在/usr/local/etc/dnsmasq.conf中创建一个包含address=/test/127.0.0.1的文件。

重启后也可以正常工作。 但是,在设置了所有站点,安装了WordPress等之后,我意识到/etc/resolver/test已经停止工作:/现在,我不确定到底哪里出了问题,但是我100%确保启用了mod_rewrite(nameserver 127.0.0.1,还有更多信息告诉了我)。

我了解到,当您使用mod_rewrite时,phpinfo()变量实际上不是站点根目录吗?但这真的会影响VirtualDocumentRoot吗?

这是我的DOCUMENT_ROOT(这是标准的WordPress之一):

mod_rewrite

就像我说的那样,访问.htaccess很好,访问<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> 会立即产生404。

这有什么问题吗?

编辑:我在macOS Catalina 10.15.1 btw上。使用Apache / 2.4.41(已预装)

Edit2:我试图在我的.htaccess文件中放一堆垃圾,以查看是否完全在使用它,但是什么也没有发生,因此似乎甚至没有读取.htaccess文件。

Edit3:我在sitename.test中注意到了这一点:

sitename.test/any-url/

将其更改为etc/apache2/httpd.conf可以解决我的问题。我敢肯定,尽管改变它是一个可怕的主意,所以我很想知道是否有更好的解决方案。

fanzongqi 回答:mod_rewrite无法与vhost_alias_module和dnsmasq一起使用

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3138956.html

大家都在问