2012-11-07 301 views
1

我想重定向一些用户请求我的Apache服务器指向不存在的文件有问题,使用这样的事情:阿帕奇rewrite_module

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] 

这大概会重定向EVERY请愿的index.html,但不起任何作用。

它应该被加载,如apache2ctl -M输出rewrite_module为正确加载在调试级别

记录错误,我只看到,用户请求不存在的文件,和Apache回答“404文件不不存在'的错误..

我是服务器管理员,所以我没有使用.hcaccess,我直接编辑httpd.conf文件,所以不应该有压倒一切的指令问题。

我错过了什么?

回答

0
RewriteCond %{HTTP_HOST} ^yourdomain.com 
RewriteRule (.*) http://www.yourdomain.com/$1 [R=301,L] 

...将用户重定向到索引页面。

+1

这不是我所问的,谢谢。我想这是: 'RewriteCond%{REQUEST_URI}!-f'需要有完整的服务器的文件系统路径才能真正检查它是否是一个文件并且它存在。 因此类似于: 'RewriteCond {DOCUMENT_ROOT}%{REQUEST_URI}!-f' 工作得很好! – frankies