我尝试将一些用户请求重定向到指向非现有文件的Apache服务器时遇到问题,使用类似这样的内容:
RewriteCond %{REQUEST_URI} !-f
RewriteRule ^/a/b/c.* /d/e$1 [L]
我的意图是,如果某个用户请求不存在的文件http://whatever.com/a/b/c/something,而不是发送404错误,请重写URL以从http://whatever.com/d/e/something获取它,我可以肯定文件确实存在。
我知道有很多这方面的主题,但我做了非常激烈的研究,我的问题是无论我尝试什么组合,我似乎无法让重写模块工作..
即使有这样的事情:
RewriteRule ^(.*) /index.html [L]
这可能会将每个请求重定向到index.html,但它什么也没做。
它应该被加载,因为apache2ctl -M输出 rewrite_module 正确加载
在调试级别记录错误,我只看到,用户请求不存在的文件,而Apache回答“404文件不存在”错误..
我是服务器管理员,所以我没有使用.hcaccess,我直接编辑httpd.conf文件,所以应该没有重写指令问题。
我错过了什么?
答案 0 :(得分:0)
RewriteCond %{HTTP_HOST} ^yourdomain.com
RewriteRule (.*) http://www.yourdomain.com/$1 [R=301,L]
...将用户重定向到索引页面。