请指向正确的方向。
我正在使用.htaccess在我的服务器上设置域。
我需要domain.com来访问/domain.com/*文件夹中的文件。 如果文件不存在,请加载/domain.com/index.php和domain.com/images/image.jpg以加载文件:/domain.com/images/image.jpg
一件事是,它应该加载一切,而不发送302“文件移动”通知给浏览器。
谢谢你的帮助!
如果你有很多的域名,或者即使你只有几个域名,但是他们的configuration都差不多,这就是dynamic的海量虚拟主机的情况。 像这样的东西可以放在你的httpd.conf文件中(或者包含在httpd.conf文件中):
UseCanonicalName Off VirtualDocumentRoot /var/www/%0/htdocs ErrorLog /var/www/logs/error_log CustomLog /var/www/logs/access_log combined
我也build议
DirectoryIndex index.php
如果客户端没有指定文件名,则将index.php文件加载到目录中。
您应该为要映射到文件path的每个域创build一个虚拟主机,并将每个虚拟主机的DocumentRoot指定为文件系统上的实际path。 然后,您将需要确保您有一个DEFAULT虚拟主机,以便对未设置的域的所有其他请求将使用DEFAULT虚拟主机。 最后,您将需要创build一个自定义的404error handling程序,以便如果文件不存在被请求,它将提供替代内容。 您将需要创build一个名为custom_404.php的php,显示一个通用消息和/images/image.png。
# Default Domain (Undefined domains will fall back to this) <VirtualHost *:80> ServerAlias www.defaultdomain.com DocumentRoot /var/www/default/htdocs ErrorDocument 404 /custom_404.php ErrorLog /var/www/default/logs/error_log CustomLog /var/www/default/logs/access_log combined </VirtualHost> # domain1.com <VirtualHost *:80> ServerName domain1.com ServerAlias www.domain1.com DocumentRoot /var/www/domain1.com/htdocs ErrorDocument 404 /custom_404.php ErrorLog /var/www/domain1.com/logs/error_log CustomLog /var/www/domain1.com/logs/access_log combined </VirtualHost> # domain2.com <VirtualHost *:80> ServerName domain2.com ServerAlias www.domain2.com DocumentRoot /var/www/domain2.com/htdocs ErrorDocument 404 /custom_404.php ErrorLog /var/www/domain2.com/logs/error_log CustomLog /var/www/domain2.com/logs/access_log combined </VirtualHost>
希望这可以帮助!
-Kevin
你需要使用虚拟主机来组织这个。 这是一个示例虚拟主机文件。
<VirtualHost *:80> ServerName example.net ServerAlias www.example.net ServerAdmin [email protected] DocumentRoot /var/www/vhosts/www.example.net/html ErrorLog /var/www/vhosts/www.example.net/logs/errors.log Customlog /var/www/vhosts/www.example.net/logs/access.log combined </VirtualHost>
把这个文件放在/etc/httpd/conf.d/中,然后调用它,例如vhost_example.net.conf
然后在/etc/httpd/conf/httpd.conf中添加例如最后一行
包括/etc/httpd/conf.d/vhost_example.net.conf
(或者只包含/etc/httpd/conf.d/*.conf)并且在httpd.conf文件中,记住要使这一行不被注释
NameVirtualHost *:80