2014-05-07 155 views
1

我一直在閱讀Apache文檔中的重寫條件信息,但沒有得到任何幫助,所以我希望你能提供幫助。在我的.htaccess文件我有一些線這樣跑:'?'是什麼意思?符號意味着在.htaccess重寫條件?

Options +FollowSymlinks 
RewriteEngine on 
rewritecond %{http_host} ^mydomain.com [nc] 
rewriterule ^(.*)$ http://www.mydomain.com/$1 [r=301,nc] 

因爲我已經注意到,一個美元符號從3行的丟失,所以它應該這樣運行:所以我

rewritecond %{http_host} ^mydomain.com$ [nc] 

問題有兩個部分,原來是(工作)(和什麼?)?如果不是的話,它是如何解釋缺少'$'的。謝謝。

回答

1

你的問題說?,但可能意味着從你的正則表達式丟失錨$

rewritecond %{http_host} ^mydomain.com$ [nc] 

更正確的應該是:

rewritecond %{http_host} ^mydomain\.com$ [nc] 

由於點可能意味着在正則表達式和文本點需要轉義任何東西。

沒有$也可能工作,但理論上它也可以匹配mydomain.comp也。使用$就位,它只能匹配mydomain.com

+0

是的!我混淆了自己(但不是你)!和$,但我重新編輯它,它現在讀它應該。謝謝。 – Frankie

+0

你確定我檢查了我的答案嗎?你需要更多的解釋嗎? – anubhava

+0

你的答案是完美的 - 謝謝你Anubhava! – Frankie