我正在将代码从服务于单个域的服务器移动到服务于多个域的服务器。我使用命名虚拟主机来处理不同的域。 url重写没有被执行
- 我知道虚拟主机可以在该服务器上运行,因为其他域也可以运行
- 我知道这个特定的域正在运行,因为当我点击 pingtest.iguiders.com 时,我看到了我留在 www/ping/ 中的 index.html 文件。 (“ping”是 pingtest 指向的目录,因为在我的测试工作后,真实的域名 ping.iguiders.com 将指向这里)
- 我知道 htaccess 通常在该服务器上运行,因为我的其他域广泛使用它。
- 我最初从另一个使用 htaccess 并工作的虚拟主机复制了 /sites-available 中的 pingtest.iguiders.com 。我刚刚更改了服务器别名和文档根目录
- 虚拟主机定义确实包含 RewriteEngine On
这是整个 .htaccess 文件
RewriteEngine on
RewriteLog "/var/log/rewrite.log"
RewriteLogLevel 7
# Pings for ping server
RewriteRule ^0.02/ping/$ ping_functional.php [L,qsa]
RewriteRule ^0.03/ping/$ ping_functional.php [L,qsa]
RewriteRule ^0.04/ping/$ ping_functional.php [L,qsa]
RewriteRule ^0.05/ping/$ index.html [L,qsa]
但是当我尝试 pingtest.iguiders.com/0.05/ping/ 时,我没有得到我期望的 index.html 文件(0.02、0.03 等也不起作用)。我收到 404。我怀疑 .htaccess 根本没有被访问,因为我从未看到我定义的重写日志。
有什么明显的事情是我搞砸的吗?
答案1
/
你的RewriteRule ^0.02/ping/$
,^
和之间有没有漏掉一个0.02/ping/
?如果将^
其删除或替换为会发生什么^/
?