我正在尝试以下重写规则:
location / {
index index.php index.html;
rewrite ^/test$ /test.php break;
}
Run Code Online (Sandbox Code Playgroud)
我还有:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /home/sites/default$fastcgi_script_name;
fastcgi_index index.php;
}
Run Code Online (Sandbox Code Playgroud)
普通的 php 文件工作正常,但似乎我的重定向只是下载我重定向到的 php 文件,而不是解析它。
我错过了什么?我通过将 fastcgi 内容放在第一个位置块中来加载文件,而不是下载,但它仍然没有解析为 php。
我已经设置了一个简单的 htaccess 重定向,它看起来像这样(这是整个 .htaccess 文件):
Options +FollowSymLinks
RewriteEngine On
Redirect 301 /something http://something.com/something.php
Run Code Online (Sandbox Code Playgroud)
如果我然后加载包含此 .htaccess 的站点,即 myredirectsite.com/something,我最终会得到以下 404:
The requested URL /something was not found on this server.
Apache/2.2.3 (Red Hat) Server at myredirectsite.com Port 80
Run Code Online (Sandbox Code Playgroud)
和日志:
[2012 年 7 月 10 日星期二 14:25:46] [错误] [客户端 xx.xx.xxx.xx] 文件不存在:/home/sites/scp/something
有些东西不是文件,有些东西不存在。我假设我可以像 Rewrite 一样使用 Redirect 但看起来重定向需要针对实际存在的文件?
我创建了文件“某物”,它只是尝试加载空白文件。没有重定向。
让这个工作我缺少什么?
我有一个带有 nginx 的服务器指令:
server {
listen 80;
server_name mydomain.net;
root /home/sites/mydomain.net;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /home/sites/mydomain.net$fastcgi_script_name;
fastcgi_index index.php;
}
}
Run Code Online (Sandbox Code Playgroud)
当我访问 mydomain.net 时,这很有效。但是如果用户尝试 www.mydomain.net,这里没有任何内容可以应用这些东西
我所做的搜索显示人们有一个完整的其他指令,使用 server_name www.mydomain.net 进行监听,这似乎......不太好。例如
server {
listen 80;
server_name www.mydomain.net;
root /home/sites/mydomain.net;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /home/sites/mydomain.net$fastcgi_script_name;
fastcgi_index index.php;
}
}
Run Code Online (Sandbox Code Playgroud)
基本上将配置代码加倍。或者以其他方式进行重写。
有没有更简单的方法来做到这一点?
我正在迁移到新服务器,并希望在重新委派域之前进行测试。我对设置 apache 虚拟主机有一些熟悉,但知识有限。
我该如何设置?我的服务器已经有一个委托给服务器的域,并且默认情况下 IP 已设置为指向该域。
有人告诉我,我可以在 /etc/hosts/ 中添加一个条目,但我无法理解我可以在其中添加什么来完成这项工作。
任何指针将不胜感激!
我有一个带有 2 个目录的服务器:1 个是开发站点,另一个是实时站点。
我想在开发站点上工作,并使用一个简单的命令简单地移动并覆盖实时站点上已更新的任何文件。
我知道有 git,我对此有一些了解,但我想知道是否有更直接的路线。
有什么建议?是否有 linux 命令来比较 2 个目录并将新文件从一个目录复制到另一个目录,同时以递归方式维护目录等?
谢谢。