客户端如何检测服务器是否正在使用mod_rewrite?现在我知道一些mod_rewrite规则不是很明显。但有些是,例如“SEO Friendly Urls”。除非服务器运行mod_rewrite,否则哪些类型的行为是不可能的?
答案 0 :(得分:4)
除非服务器正在运行mod_rewrite,否则哪些类型的行为是不可能的?
真正的答案是“无”。从理论上讲,任何URL都可以由实际文件或目录组成,包括经典的“SEO友好”URL。
只有间接证据
我能想到的最好的迹象是整个网站结构包含没有.htm .php .html
文件扩展名的网址:
http://domain.com/slugs/house-warming-party
排除该URL为目录的可能性,请求
http://domain.com/slugs/house-warming-party/index.htm
http://domain.com/slugs/house-warming-party/index.html
http://domain.com/slugs/house-warming-party/index.php
http://domain.com/slugs/house-warming-party/index.asp
... whatever other extensions there are .....
如果这些请求全部失败,则该网站很可能正在使用mod_rewrite。但是,如果他们成功,正如@Gumbo所说,它也可能是修复请求的MultiViews
选项。无论哪种方式,这是无处接近安全!
根据您的使用案例,您还可以尝试从网站上使用的CMS中扣除一些内容。打开mod_rewrite的Wordpress将显示与关闭时不同的URL结构。大多数其他CMS也是如此。但当然,这也是一种非常不完善的方法。
HTML资源与<。strong> .html / .htm / .php结尾的使用会略微反对使用mod_rewrite,但您永远无法确定。
< / LI>使用PATHINFO变量(也称为穷人的mod_rewrite)会对使用mod_rewrite有点强烈反对:
http://example.com/index.php/slugs/house-warming-party
总之,mod_rewrite
(与大多数URL重写工具一样)应该是对外界透明的模块。我知道没有可靠的方法从外面检测它,而且可能没有。