我需要有两个VirtualHosts,它们具有相同的监听端口,用于不同的项目和不同的日志.这是我得到的:
<VirtualHost *:80>
DocumentRoot /home/projects/smk
ErrorLog /var/log/apache2/smk-error.log
RedirectMatch ^/$ /cms
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /home/projects/smk/cms
ErrorLog /var/log/apache2/smk-cms-error.log
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /home/projects/smk/deploy
ErrorLog /var/log/apache2/smk-deploy-error.log
</VirtualHost>
Run Code Online (Sandbox Code Playgroud) 我为我的机器配置了外部IP和主机名.
在应用程序内部,我只使用域名来访问API.因此,当我尝试通过IP地址访问我的API时,它显示302 Moved暂时出错.因此,对于使用IP地址命中服务器的请求(对于主页),它应该重定向到主机名.
也就是说,当用户点击https://XX.XX.XX.XX/main时,应将其重定向到https://ayz-abc.mysite.com/main
为此,我尝试使用apache的httpd.conf中的重定向.
<VirtualHost XX.XX.XX.XX>
DocumentRoot "/var/www/html"
#ServerName ayz-abc.mysite.com/
# Other directives here
RewriteEngine On
RewriteRule /.* https://ayz-abc.mysite.com/ [R]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我也试过以下
<VirtualHost *.portnum>
DocumentRoot "/var/www/html"
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule https://XX.XX.XX.XX/main https://ayz-abc.mysite.com/main [R=301,L]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
Plsssss帮助我.
我想要这种情况:
如果用户请求使用此URL:example.com或者www.example.com,用户将index.php在此目录中看到/home/admin1/public_html/
但是当用户请求使用其他子域(通配符)时freediscount.example.com,用户将index.php在此路径中看到:/home/admin1/public_html/userweb/freediscount.example.com
我托管的技术支持建议我使用这种方法:http://www.wiredstudios.com/php-programming/setting-up-wildcard-dns-for-subdomains-on-cpanel.html
基于该教程,PHP有一个新工作...当用户请求子域时重定向特定文件夹.我不喜欢这种方法.对我来说,如果Apache可以处理这个问题会更好.
几乎接近我需要的是这个方法:Virtualhost For Wildcard Subdomain和Static Subdomain
但是,我有一个VirtualHost设置问题,如何VirtualHost正确创建该情况?
这是我所做的但没有奏效:
## I think this one is for www or without www, automatically generated with WHM
<VirtualHost xx.xx.xx.xx:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /home/admin1/public_html
</VirtualHost>
## Here's what I'm trying to add
<VirtualHost xx.xx.xx.xx:80>
ServerName example.com
DocumentRoot /home/admin1/public_html/userweb/*
</VirtualHost>
Run Code Online (Sandbox Code Playgroud) 目标:想要使用ngrok共享网站预览,这会创建一个隧道,从中可以看到我的本地主机,其中包含类似的内容 mywebsite.ngrok.io
问题:我使用WAMP,我的localhost文件夹看起来像这样:
localhostdirectory
|-- website1
|-- website2
|-- etc
Run Code Online (Sandbox Code Playgroud)
要访问我localhost/website1/在浏览器中键入的网站,我想只隧道该URL,可能的解决方案是:
设置一个虚拟主机,我会经历手动设置虚拟主机的麻烦,然后我得到类似于website1.dev的东西,然后我将它作为HTTP请求中的主机头传递给ngrok,如下所示:
ngrok http -host-header=website1.dev 80
Run Code Online (Sandbox Code Playgroud)
我不明白主机头是什么,为什么我不能传递相对网址localhost/website1/,还有什么是重写选项?
有没有更好的方法以更简单的方式实现我的目标,也许通过WAMP别名?
我遇到过这个问题,我有一个运行apache和php的服务器.我们有许多虚拟主机,但我们注意到潜在的恶意用户可以使用他的网络空间浏览其他用户的文件(通过简单的PHP脚本)甚至系统文件,这可能是由于php权限.一种避免它的方法是在php.ini中设置open_basedir var,这在单个主机系统中非常简单,但是在虚拟主机的情况下,每个主机都会有一个basebir.
我可以为每个用户/主机设置dis basedir吗?有没有办法让apache hereditate已经请求的php文件的php权限
EG /home/X_USER/index.php拥有所有者X_USER,当apache读取文件index.php时它会检查其路径和所有者,只是我正在寻找一个系统设置php basedir变量到该路径.
提前感谢Lopoc
当我尝试在我的MAC上运行我的XAMPP安装时,我一直收到Access Forbidden Error 403
我在外面运行项目/Applications/XAMPP/htdocs.它在我的/Users/my_user_name/Projects/目录中.
每次我尝试去我的虚拟主机时,都会收到403错误:禁止访问.
我编辑了我的httpd-vhosts.conf文件,并且我在httpd.conf中允许虚拟主机.
我还在httpd.conf中将用户和组设置为用户my_user_name和Group Admin
我甚至试过chmoding我的所有文件和目录777但我仍然禁止访问Access.
我还在新安全设置的httpd-xampp.conf文件中将Deny更改为Allow.
XAMPP提供的erro_log没有提到我在访问日志中看到的403错误 127.0.0.1 - - [21/Aug/2013:14:45:20 -0400] "GET / HTTP/1.1" 403 1034
我打开错误,我看到了[authz_core:error] [pid 52813] [client 127.0.0.1:57473] AH01630: client denied by server configuration:
不知道还有什么要检查或尝试.请帮助哈哈.
我在早上将我的Chrome更新到ubuntu上的最新版本时,我开始在apache上的所有本地虚拟主机上收到此错误.
虽然所有这些浏览器都在其他浏览器上工作,但Chrome开始行为错误,并出现ERR_NAME_NOT_RESOLVED错误.
我有以下网址重置我的密码:
http://example.com/resetPassword/LtoyURJd5AYuP3KEGg4gx8fvUprT37LBQDlvhg22qjg=.eyJ0b2tlbiI6IiQyeSQxMCRMTlgzU29HdEdOaExsay5yQ1puQ2ZlZ1wvbVNcL09BMDV2SjhcL1wvcHNRNjZaQmRpbWpOdnhGQlciLCJ0aW1lIjoiMjAxNS0xMi0xMVQwOTozOToyOSswMTAwIiwiZW1haWwiOiJsb3JlbS51dC5hbGlxdWFtQGZldWdpYXRwbGFjZXJhdHZlbGl0Lm9yZyJ9
Run Code Online (Sandbox Code Playgroud)
在本地开发机器上它没有任何问题.但是在公共服务器上(托管在亚马逊ec2上)我得到了414 Uri.我试图解决它,但我似乎无法解决这个问题.ps:我已将url替换为example.com
我尝试将以下行添加到/etc/apache2/apache2.conf,vhosts conf.两者同时又分开.是的.我每次都重启apache服务.
LimitRequestLine 8190
Run Code Online (Sandbox Code Playgroud)
此外,当我要求其他长网址没有问题.例如.我重命名为robots.txt,所以我可以请求以下网址:
http://example.com/robotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsr/robotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsroborobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobots.txtrobots.txtrobots.txtrobots.txtrobots.txtrobots.txtrobots.php?test=ok
http://example.com/robotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsr/robotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsroborobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobots.txtrobots.txtrobots.txtrobots.txtrobots.txtrobots.txtrobots.php
http://example.com/robots.txt?klsadjflkasdjflkdsajflkdsja=sdakjflksadjfoaiwsefnalkfjsdakjflksadjfoaiwsefnalkfjsdakjflksadjfoaiwsefnalkfjsdakjflksadjfoaiwsefnalkfjsdakjflksadjfoaiwsefnalkfjsdakjflksadjfoaiwsefnalkfjsdakjflksadjfoaiwsefnalkfj
Run Code Online (Sandbox Code Playgroud)
我还将robots.txt移动到其他位置并为其制作了重写规则.即便如此,它似乎工作正确.所以mod_rewrite不会成为问题.
当网址变长为+/- 275个字符时,会出现此问题.它使用273的重置链接,更长的是324个字符.我认为机器人长的网址是400个字符.
我似乎也有问题(我不是shure是否相关)我的vhosts没有正确加载.服务器始终重定向到默认路由中定义的路径.不是vhosts.apache2ctl -s输出提供以下内容:
ubuntu@ip-172-31-28-19:~$ apache2ctl -S
VirtualHost configuration:
<ip>:80 example.com (/etc/apache2/apache2.conf:228)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/public"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex proxy: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used
Run Code Online (Sandbox Code Playgroud)
更新2015-12-18 在与我的团队中的其他开发人员讨论时,我们将在亚马逊上为此服务器选择不同的基本映像.似乎有比这更多的问题.所以这个问题已经过时了.
我一直试图建立一个子域来托管我的论坛,使它看起来比www.mydomain.co.uk/forum/index.php更好,我希望它是forum.mydomain.co.uk
我已经尝试了所有的教程,指南和我在谷歌上发现的一切,但没有任何作用.我尝试过使用webmin,但这让事情变得更复杂,我不得不从头开始重新安装所有东西,因为它破坏了它.这是我在下面的内容,任何人都可以告诉我,除了这个以外还有什么我必须为子域工作吗?
我的httpd.conf的内容是:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin email@email.com
ServerName forum.mydomain.co.uk
DocumentRoot /var/www/html/forum
ErrorLog logs/forum-error_log
CustomLog logs/forum-access_log common
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
域名本身有效.它指向我的apache页面,这是我现在需要的,因为我没有上传任何东西.当我去mydomain.co.uk/forum它,显示论坛内容的索引.forum.mydomain.co.uk显示页面无法显示/无法解析主机.
我必须配置任何其他文件才能使用吗?
我在一个vps中分别在两个docker容器中运行两个网站.例如www.myblog.com和www.mybusiness.com
如何在vps中实现virtualhost,以便两个网站都可以使用端口80.
我在其他地方问了这个问题,并建议看看:https://github.com/hipache/hipache和https://www.tutum.co/ 它们看起来有点弯曲.我试图找到是否有一种直接的方法来实现这一点.谢谢!
另外,忘了提我的vps是Ubuntu 14.04的盒子.