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 ==&gt; 99.99.99.99
一切正常。
如果您输入wow.cccc.net,但没有该文件夹,服务器将返回404 Not Found。
有趣的是:今天,我要添加一个名为dev的文件夹(/ home / someuserblabla / ccccnet / dev),但它总是返回403错误,当我只是重命名时,这个问题立即得到解决文件夹中。
我仔细检查了Apache的所有配置文件,似乎没什么不对,并且没有“过滤器”用于称为“dev”的东西
之后,我记得系统根目录中有一个名为“dev”的文件夹。
然后我尝试了etcccc.net root.cccc.net ....
它们都返回403错误而不是404错误。
我的线索是:
重写模块的订单与目录匹配。它首先搜索根文件夹,然后搜索当前文件夹。
有什么建议吗?我不希望它搜索根目录。
感谢。
答案 0 :(得分:1)
是的,您的重写规则有/
作为基目录,因此它是重写的位置。尝试:
RewriteRule ^(.*)$ /home/someuserblabla/csuwnet/%1/$1 [L]