2011-02-01 49 views
2

客戶端如何檢測服務器是否正在使用mod_rewrite?現在我知道一些mod_rewrite規則不是很明顯。但有些是,如「搜索引擎友好的網址」。除非服務器正在運行mod_rewrite,否則什麼類型的行爲是不可能的?檢測Apache是​​否正在使用mod_rewrite

+0

沒有*完全*不可能的行爲,但是有些模式在沒有mod_rewrite的情況下極少發生。 – 2011-02-01 18:22:51

+0

請注意,不只有一個Web服務器軟件。 – Gumbo 2011-02-01 18:37:52

回答

4

什麼類型的行爲是不可能的,除非服務器正在運行的mod_rewrite?

真正的答案是 「沒有」。理論上,任何URL都可以由實際的文件或目錄形成,包括經典的「SEO友好」URL。

只有旁證:

  • ,我能想到的是,當整個網站結構由URL的無.htm .php .html文件擴展名的最佳適應證:

    http://domain.com/slugs/house-warming-party 
    

    排除該網址是一個目錄的可能性,要求

    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將顯示與關閉它不同的網址結構。大多數其他CMS也是如此。但當然,這也是一種非常不完美的方法。

  • 使用HTML資源一個的.html /熱媒/ .php結尾會反對使用的mod_rewrite略有點,但你永遠無法確定。

  • 使用該PATHINFO變量(也被稱爲窮人的mod_rewrite)會反對使用的mod_rewrite有點強烈指出:

    http://example.com/index.php/slugs/house-warming-party 
    

總之,mod_rewrite(最喜歡的URL重寫工具)應該是對外界透明的模塊。我知道沒有確定的方法可以從外部檢測它,也可能沒有。