我有一个带有 Apache 的专用服务器,我在上面设置了一些 VirtualHosts。我已经设置了一个来处理 www 域以及非 www 域。
我的 www 的 VH .conf 文件:
<VirtualHost *>
DocumentRoot /var/www/site
ServerName www.example.com
<Directory "/var/www/site">
allow from all
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
有了这个.htaccess
:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以将 www 重定向到非 www 版本?目前我将两个版本发送到同一个DocumentRoot
并使用,.htaccess
但我确定我必须能够在 VirtualHost 文件中做到这一点。
我最近在 Ubuntu 服务器上安装了Webmin,但我无法让它工作。我最近问了一个关于保存 iptables 的问题,但事实证明您不需要“保存”iptables 更改。
无论如何,打开端口后我仍然无法让Webmin工作:
iptables -A INPUT -p tcp -m tcp --dport 10000 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
似乎是该命令没有打开端口 10000,或者 Webmin 存在单独的问题。如果我运行,iptables -L
我会看到如下所示的行,但没有端口 10000:
ACCEPT tcp -- anywhere anywhere tcp dpt:5555 state NEW
ACCEPT tcp -- anywhere anywhere tcp dpt:8002 state NEW
ACCEPT tcp -- anywhere anywhere tcp dpt:9001 state NEW
Run Code Online (Sandbox Code Playgroud)
但是,有一行:
ACCEPT tcp -- anywhere anywhere tcp dpt:webmin
Run Code Online (Sandbox Code Playgroud)
为什么 Webmin 不起作用的任何想法?IP地址工作正常,我们可以在服务器上查看网站,但https://[ip]:10000/
(或http)不起作用。
我有一些这样的 Apache 配置:
# Image hotlinking rule
RewriteCond %{HTTP_REFERER} ^http://badsite\.com/
RewriteRule .*/static/artwork/.*\.(jpg|png)$ /static/images/hotlink.png [L]
# Redirects
RewriteRule ^static/artwork/(.+)$ http://cdn.mysite.com/artwork/$1 [L,R=301]
# CodeIgniter
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)
它应该执行以下操作:
badsite.com
,则阻止它并显示热链接图像。但是,我认为第一个RewriteCond
适用于重定向规则,而不是盗链规则,因为来自该引用者的图像请求被重定向到 CDN,而不是盗链图像。Apache 文档中的一个示例(本节底部)暗示换行符停止RewriteCond
应用,但这并没有发生。
有没有办法“重置”RewriteCond
规则,或者我的配置中是否有其他错误?
我刚刚在 Ubuntu 服务器上安装了 Webmin。根据文档,您需要打开端口 10000(Webmin 运行的端口),如下:
iptables -A INPUT -p tcp -m tcp --dport 10000 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
然后它说你需要应用防火墙配置:
/etc/init.d/iptables restart
Run Code Online (Sandbox Code Playgroud)
但是,这个命令对我不起作用。是否有不同的命令可以保存 Ubuntu 上的更改?
我刚刚用 nginx(我是新手)和 PHP 设置了一个新服务器。在我的网站上,基本上有 3 种不同类型的文件:
我从这个问题和这个页面了解到,静态文件不需要特殊处理,会尽快提供。
我按照上述问题的答案为 PHP 文件设置缓存,现在我有一个这样的配置:
location ~ \.php$ {
try_files $uri =404;
fastcgi_cache one;
fastcgi_cache_key $scheme$host$request_uri;
fastcgi_cache_valid 200 302 304 30m;
fastcgi_cache_valid 301 1h;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fastcgi/php-fastcgi.socket;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/example$fastcgi_script_name;
fastcgi_param HTTPS off;
}
Run Code Online (Sandbox Code Playgroud)
但是,现在我想防止在论坛上缓存(无论是针对所有人还是仅针对登录用户 - 还没有检查后者是否适用于论坛软件)。我听说位置块内有“如果是邪恶的”,所以我不确定如何继续。使用位置块内的 if 我可能会在中间添加它:
if ($request_uri ~* "^/forum/") {
fastcgi_cache_bypass 1;
}
# or possible this, if I'm able to cache pages …
Run Code Online (Sandbox Code Playgroud) apache-2.2 ×2
mod-rewrite ×2
port ×2
ubuntu ×2
cache ×1
iptables ×1
linux ×1
nginx ×1
php ×1
redirect ×1
rewritecond ×1
virtualhost ×1