Vhost配置:
<VirtualHost *:80>
ServerAdmin XXX@XXX.com
ServerAlias *.cccc.net
ServerName lolololololol.cccc.net
DirectoryIndex index.html index.php index.htm
DocumentRoot /home/someuserblabla/ccccnet
#Rewrite abc.cccc.net to ./abc (folder). (hidden rewrite, without redirect)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*).cccc.net$
RewriteRule ^(.*)$ /%1/$1 [L]
DirectoryIndex index.php index.htm index.html
</VirtualHost>
DNS:*.cccc.net=>99.99.99.99
一切都很好。
如果您输入wow.cccc.net,但没有该文件夹,服务器将返回404 Not Found。
有趣的是:今天,我要添加一个名为dev(/home/someuserblabla/cccnet/dev)的文件夹,但它总是返回403错误,当我简单地重命名文件夹时,这个问题立即得到了解决。
我仔细检查了Apache的所有配置文件,似乎没有什么问题,而且没有所谓的"dev"的"过滤器"
之后,我记得在系统根目录中有一个名为"dev"的文件夹。
然后我试了etc.cccc.net root.cccc.net。。。。
它们都返回403错误,而不是404错误。
我的线索是:
重写模块有一个与目录匹配的顺序。它首先搜索根文件夹,然后搜索当前文件夹。
有什么建议吗?我不希望它搜索根目录。
谢谢。
是的,您的重写规则将/
作为基本目录,因此它将重写到该目录。尝试:
RewriteRule ^(.*)$ /home/someuserblabla/csuwnet/%1/$1 [L]