我已經在這個計算器讀到這裏超過3個問題,但它們都具有的以下問題之一:如何打開的* .htm爲* .PHP htaccess的
- 它重定向PHP來HTM (未找到出現時,我已經有到位的PHP文件)
- 當您鍵入的* .htm,它會被重定向到* .PHP(我希望觀衆看到的* .htm不* .PHP)
讓我把它歸結爲你們:我需要鍵入index.htm和Apache重定向到.php,但在地址欄中我仍然想看到.htm不是.php
任何幫助或建議,將不勝感激。
我已經在這個計算器讀到這裏超過3個問題,但它們都具有的以下問題之一:如何打開的* .htm爲* .PHP htaccess的
讓我把它歸結爲你們:我需要鍵入index.htm和Apache重定向到.php,但在地址欄中我仍然想看到.htm不是.php
任何幫助或建議,將不勝感激。
RewriteEngine on
RewriteRule ([^/]*)\.htm$ $1.php [PT]
請檢查http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule所有的可用選項,包括你可能要包括其他標誌 - 如QSA
。
請注意,RewriteEngine on
行(以及Options FollowSymLinks
- 請參閱上面鏈接的文檔)是必要的,如果您還沒有在別處。您可能還需要在主Apache配置中使用AllowOverride FileInfo
以啓用.htaccess
文件。
請注意,PT
標誌不是嚴格必要的,因爲如果Apache確定它可以在沒有重定向的情況下完成請求,則它是缺省設置。
這裏是另一個結果,我剛剛從谷歌搜索發現,顯示幾乎同樣的事情,我在這裏描述:(具體說明各地的.htm一些規則 - > .PHP翻譯)http://corz.org/serv/tricks/htaccess2.php
喜這很容易完成:在你的.htaccess中,你將有這樣的重定向:
RewriteRule ^(.*).htm$ $1.php [QSA]
RewriteRule ^(.*).html$ $1.php [QSA]
如果你想匹配'htm'和'html',使用'html?',而不是'html *',否則你也會匹配'htmllllll'。 '.html'中的'.'需要被轉義。您還應該添加尾隨的'$',或者這也可以匹配URL中任何地方包含'html' **的任何內容**。 – ziesemer 2011-12-23 07:38:38
長夜:)修復。 – 2011-12-23 07:40:20
儘管您應該將QSA添加到您的答案中。 – 2011-12-23 07:41:27
@ziesemer這將導致重定向。 – alexn 2011-12-23 07:32:41