我需要复制mod_alias
的功能,我不能直接使用它,因为我在共享主机上,而Alias语句在.htaccess中不起作用。
我想要实现的基本上是
Alias /manual /www/customer/some_other_dir/manual
我正在尝试mod_rewrite:
RewriteRule ^/manual/(.*) /www/customer/some_other_dir/manual/%1?%{QUERY_STRING} [L]
这永远不会匹配对www.example.com/manual
的任何调用。
为什么不呢?我做错了什么?
答案 0 :(得分:2)
尝试:
RewriteRule ^/manual(/(.*))?$ /www/customer/some_other_dir/$2 [L]
除了?
上的kleene闭包之外,/
对.
字符来说是可选的,以确保/manual
,/manual/
和{{1}虽然我收集斜线通常是由apache预重写引擎添加的。
我的框中的快速测试显示此规则还传递了查询字符串:
/manual/a/b/c
答案 1 :(得分:1)
关闭多视图选项
Options -Multiviews
我认为,它会在请求的URL结束时显示/。
这样的内容也会匹配www.example.com/manual
。
RewriteRule ^/manual/?(.*) /www/customer/some_other_dir/manual/%1?%{QUERY_STRING} [L]