0
我正在使用mod_rewrite
從文件中刪除.HTML
擴展名,並將其重定向到其友好版本。文件擴展名mod_rewrite會干擾驗證文件嗎?
我使用pinterest.html
和google.html
文件來驗證我的Pinterest頁面和Google Apps帳戶。
mod_rewrite的,我用這:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)$ $1.html [L,QSA]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/
RewriteRule ^(.*)\.html$ /$1 [R=301,L]
我的問題是關於相對於驗證文件的邏輯和它的功能。我理解的目的是爲'x' file
與'y' URL
服務。
所以即使我服務example.com/pinterest.html
爲example.com/pinterest
由於重定向和.HTML
去除,不應該有任何干擾,因爲該文件仍然是可讀一如既往,正確嗎?
謝謝你的解決方案,我不是很熟悉mod_rewrite,它只是我從另一個stackoverflow問題的答案中使用的代碼。介意我問別的東西嗎?在cond中,最後的'HTTP /'的目的是什麼?如果我從FILENAME切換到URI,具體的區別是什麼? – popsicle 2013-03-15 19:54:12
查看更改:-) – TerryE 2013-03-15 19:58:52
再次感謝。嘗試了一些不同的組合,只得到了以下工作:! '的RewriteCond%{} REQUEST_FILENAME -f 的RewriteCond%{} REQUEST_FILENAME -d 的RewriteCond%{} REQUEST_FILENAME的.html -f 重寫規則^(+)$ $ 1 .html [L,QSA] RewriteCond%{THE_REQUEST}^[AZ] {3,9} \ /(?! pinterest \ .html | google \ .html)。* \。html \ HTTP/ RewriteRule^。*)\。html $/$ 1 [R = 301,L]' 我正在閱讀apache.org上'REQUEST_URI','REQUEST_FILENAME'和'THE_REQUEST'之間的差異。 'REQUEST_URI'似乎是最好的,但我不知道如何實現它。爲了獲得最佳性能,我可以在以上重寫中更改哪些內容? – popsicle 2013-03-16 12:17:32