标签: vhosts

我如何强制使用Apache2 + Rails + Phusion Passenger的'www'子域?

我的客户希望使用301重定向来强制其网站上的"www"子域.所以'example.com/something'解析为'www.example.com/somthing'等.

我想要做的只是将其添加到我的vhost文件中:

<VirtualHost *:80>
  ServerAdmin webmaster@localhost     
  ServerName  example.com
  ServerAlias www.*
  DocumentRoot /data/apps/example.com/current/public
  RailsBaseURI / 

  RewriteEngine On
  RewriteCond %{HTTP_HOST} ^example\.com
  RewriteRule ^ http://www.example.com%{REQUEST_URI} [L,R=301]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我还确保通过以下方式启用了mod重写:

sudo a2enmod rewrite
sudo /etc/init.d/apache2 force-reload
Run Code Online (Sandbox Code Playgroud)

我目前努力的结果似乎基本上是成功的.Apache重新启动,一切都按预期工作除了重写没有发生.所以'www.example.com'和'example.com'都解决了.浏览器不会被重定向到"www.example.com".有任何想法吗?我已经尝试重新加载配置并重启apache几次,但我似乎无法让重写规则正常工作.我是通过将它们放在vhost中而不是.htaccess文件中将它们设置在错误的位置吗?

这里的任何建议都会有用.我完全不知所措.

mod-rewrite ruby-on-rails apache2 passenger vhosts

3
推荐指数
1
解决办法
3153
查看次数

MediaTemple(dv)vhosts配置文件在哪里存在?

此问题特定于MediaTemple Dedicated-Virtual服务器.

当我通过Plesk Panel添加新的虚拟主机时,vhost配置保存在哪里?没有/etc/httpd/conf/httpd-vhosts.conf并且/var/www/vhosts/mydomain.com/conf/中没有任何内容

我正在尝试将子域设置为subversion服务器,提示赞赏.

svn apache virtualhost mediatemple vhosts

3
推荐指数
1
解决办法
3029
查看次数

Apache 2 VHost - www.domain.com有效,但domain.com进入注册商

我使用以下VHOST:

<VirtualHost *:80>
    #Basic setup
    ServerAdmin administrator@mydomain.com
    ServerName www.mydomain.com
    ServerAlias mydomain.com

    <Directory /home/mydomain/public_html/mydomain.com/mydomain/apache/>
        Order deny,allow
        Allow from all
    </Directory>

    LogLevel warn
    ErrorLog  /home/mydomain/public_html/mydomain.com/logs/apache_error.log
    CustomLog /home/mydomain/public_html/mydomain.com/logs/apache_access.log combined

    WSGIDaemonProcess mydomain.com user=www-data group=www-data threads=20 processes=2
    WSGIProcessGroup mydomain.com

    WSGIScriptAlias / /home/mydomain/public_html/mydomain.com/mydomain/apache/mydomain.wsgi
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

当我访问www.mydomain.com时它工作正常,但mydomain.com带我到我的域名注册商控制页面(为了简单起见我使用他们的名称服务器.)这是我的vhost文件的问题或我需要配置的东西注册商?

apache vhosts

3
推荐指数
1
解决办法
4632
查看次数

AliasMatch和RegEx

我正在开发服务器上使用集中式CMS,CMS就在 /var/www/central-cms

该网站(我已经很多网站)是这个网址:http://web.localdomain.dev/site1/.

如何访问只要输入这个网址的CMS: http://web.localdomain.dev/site1/cms

也许AliasMatch是解决方案?有关RegExp的任何帮助吗?

http://web.localdomain.dev/stackoverlow/

http://web.localdomain.dev/google/

http://web.localdomain.dev/yahoo/

等等

如果我将一个附加/cms到网址,此网址指向/var/www/central-cms

regex apache vhosts

3
推荐指数
1
解决办法
1万
查看次数

带有正则表达式的apache虚拟主机定义

对于开发项目,我使用hosts文件将实际域指向localhost.我将虚拟主机定义添加到apache配置文件.我的问题是可以将所有"xyz.com"域重定向到"d:/xampp/htdocs/websites/xyz.com"目录吗?这样我每次都不需要添加vhost定义.

regex apache vhosts

3
推荐指数
1
解决办法
8350
查看次数

MAMP 2使用SSL的多个VirtualHost

我目前在配置MAMP 2以使用SSL与多个虚拟主机(它与一个工作正常)时遇到了麻烦.就我而言,它只会为https-ssl.conf文件中列出的第一个虚拟主机提供SSL连接.

在我的httpd-vhosts.conf文件中,我有几个vhosts设置如下:

<VirtualHost *:80> 
    DocumentRoot "/Users/me/sites/something/" 
    ServerName something.local 
</VirtualHost>
<VirtualHost *:80> 
    DocumentRoot "/Users/me/sites/else/" 
    ServerName else.local 
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

在我的https-ssl.conf文件中,我有几个vhosts设置如下:

<VirtualHost *:443>
    DocumentRoot "/Users/me/sites/something"
    ServerName something.local:443
    ServerAdmin you@example.com
    ErrorLog "/Applications/MAMP/Library/logs/error_log"
    TransferLog "/Applications/MAMP/Library/logs/access_log"

    SSLEngine on

    #   SSL Cipher Suite:
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

    #   Server Certificate:
    SSLCertificateFile "/Applications/MAMP/conf/apache/server.crt"
    #SSLCertificateFile "/Applications/MAMP/conf/apache/server-dsa.crt"

    #   Server Private Key:
    SSLCertificateKeyFile "/Applications/MAMP/conf/apache/server.key"
    #SSLCertificateKeyFile "/Applications/MAMP/conf/apache/server-dsa.key"

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory "/Applications/MAMP/Library/cgi-bin">
        SSLOptions +StdEnvVars
    </Directory>

    #   SSL Protocol Adjustments:
    BrowserMatch ".*MSIE.*" \
             nokeepalive ssl-unclean-shutdown \
             downgrade-1.0 force-response-1.0

    #   Per-Server Logging:
    CustomLog "/Applications/MAMP/Library/logs/ssl_request_log" …
Run Code Online (Sandbox Code Playgroud)

ssl mamp vhosts

3
推荐指数
1
解决办法
2446
查看次数

在Shell脚本中添加选项卡

所以我有一个非常简单的shell脚本,它在一个人的计算机的hosts文件中输入一个IP地址和一个域名.仅用于"开发目的!" 它工作正常,它只是输入IP地址和域名

192.168.53.215dev.env.os 192.168.53.215dev.source.os

我希望它输入它像这样:

192.168.53.215 dev.env.os 192.168.53.215 dev.source.os

所以基本上我希望它在IP地址和域名之间添加空间,遗憾的是我无法弄明白.任何帮助将不胜感激,这是一个简单的脚本,不应该与过于复杂的脚本混杂.请保持简单,并准确解释你正在做什么我想学习它没有为我做完感谢!

这是代码:

do shell script "/usr/bin/printf \"\\n# Add #####'s ip for Sourcebox\\n192.168.53.215\\dev.env.os\\n192.168.53.215\\dev.source.os\\n\" >> /etc/hosts; /usr/bin/dscacheutil -flushcache" with administrator privileges
Run Code Online (Sandbox Code Playgroud)

shell scripting applescript hosts vhosts

3
推荐指数
1
解决办法
2万
查看次数

http-vhosts.conf 虚拟主机环境变量不起作用

我在 Mac OS X 10.9.4 上运行 Apache 2.2.26 和 PHP 5.4.24。我在这个系统上运行了几个虚拟主机,并且它们都运行成功。我正在尝试将环境变量添加到其中一台虚拟主机,但我不希望它们位于 .htaccess 中,因此我唯一的选择是将它们添加到 httpd-vhosts.conf 中。

问题是,在我将环境变量安装到 httpd-vhosts.conf 文件中之后(当然,在我重新启动 Apache“sudo apachectl restart”之后),环境变量不会出现。但是,如果我将它们添加到 .htaccess (仅用于比较目的),它们看起来就很好。我缺少什么?

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName mysite.local
  DocumentRoot "/path/to/mysite.com"
  SetEnv siteid 1234
  ErrorLog "/var/log/apache2/mysite.local-error_log"
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我还仔细检查了我的 php.ini 文件,以确保其中没有任何禁止的内容,并且唯一相关的行看起来不错:

variables_order = "GPCSE"
Run Code Online (Sandbox Code Playgroud)

再次强调一下,我的虚拟主机运行良好。只是我的PHP代码中调用时没有出现环境变量。我已经尝试过这三个命令:

echo $_SERVER["siteid"];
echo getenv("siteid");
echo apache_getenv("siteid");
Run Code Online (Sandbox Code Playgroud)

我能做错什么吗?

php apache macos virtualhost vhosts

3
推荐指数
1
解决办法
2951
查看次数

Nginx 重定向反向代理 404

我有以下 Nginx 服务器块:

server {
    listen 80;
    listen [::]:80;
    server_name example.com;
    root /usr/share/nginx/html;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_pass http://localhost/page-1/;
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望当用户在 example.com 上收到 404 错误时,proxy_pass应该更改为直接访问http://localhost/example-404/.

然而,这个服务器块和两者的服务器块http://localhost具有相同的root,所以或者它可以只指向/example-404/内部,我不确定哪个更容易做到。不管怎样,我希望浏览器地址栏中的地址保持不变。

我想要这个的原因是如果http://localhost直接访问服务器将会有一个不同的404页面。我真的很感激任何人对此的想法!

error-handling proxy reverse-proxy nginx vhosts

3
推荐指数
1
解决办法
1万
查看次数

Nginx-动态虚拟主机的error_log

如何获得动态虚拟主机的错误日志文件?

server {
    listen 80;

    server_name ~^(?<folder>[^.]*).(?<user>[^.]*).dev.example.com;

    root /var/www/projects/dev/$user/$folder/htdocs;
    access_log /var/www/projects/dev/$user/$folder/access.log;
    error_log  /var/www/projects/dev/$user/$folder/error.log;
}
Run Code Online (Sandbox Code Playgroud)

root和access_log正常工作,但是如果我添加error_log行,则nginx无法启动,因为/ var / www / projects / dev / $ user / $ folder /不存在。

nginx error-log vhosts

3
推荐指数
1
解决办法
125
查看次数