mod_rewrite标准用于在服务器级别重写URL。这意味着请求静态页面的用户实际会由服务器返回动态页面,而且完全意识不到这一切都是技术的魔法。
想要使用mod_rewrite的话,你需要托管主机的支持。如果你使用Apache web服务器的话,是可以查询一下是否支持mod_rewrite的。查看httpd.conf文件或者在php.info文件中运行一个php查询都可以。
然而,在这里我不会过于深入的介绍,我建议你联系一下WEB托管支持团队来问问他们这个问题。
你一定知道301重定向和.htaccess文件。我们也通过这个文件实现mod_rewrite。在下面这个简略的例子中,这段代码会重写浏览器的页面请求,将http ://www.youdomain.com/apple.html重写为http ://www.youdomain.com/orange.html:
RewriteEngine on
RewriteRule^apple.html$orange.html
orange.html的内容将会显示给用户,但是浏览器中的URL却是apple.html。这个听起来很简单,但是为复杂的动态URL编写正确的mod_rewrite规则可是件麻烦的事,因为你需要使用复杂的条件操作符。
生成动态的URL的商业软件的开发者们都应该拥有支持mod_rewrite的相关知识,至少是Apache服务器的。有的还提供完整的后端模块支持,你可以将其作为插件来直接加载,但用无妨。问问开发者,读读FAQ,寻求一些帮助。坚持会让你成功。
你可能听说过在Windows服务器上不能使用mod_rewrite,这实际上不是真的,你可以使用。
然而,在Windows上实现mod_rewrite要比在Apache上复杂的多。你可能需要专业开发者的帮助。无论如何,这样做是值得的,所以千万别放弃。
如何用mod_rewrite重写URL