有人可以解釋下面的mod_rewrite腳本是如何工作的? 目標是捕獲對probe.com的訪問權限,該權限沒有任何關注,並將其重定向到probewebsites.com。如果訪問probe.com/anything(如probe.com/register.php),則訪問將保留在probe.com中,在此情況下,將訪問probe.com/register.php。試圖瞭解mod_rewrite腳本
該腳本的作品,我只是不知道如何。
我看到第2行尋找對probe.com的訪問。 然後,第3行以某種方式驗證probe.com後沒有任何內容。 第4行看起來像是收集反向引用,但從未使用過。 感謝您的幫助。
1. RewriteEngine on
2. RewriteCond %{HTTP_HOST} probe\.com [NC]
3. RewriteCond %{REQUEST_URI} ^/$
4. Rewriterule ^(.*)$ http://probewebsites.com/ [L,R=301]
快速的問題,在這條線'的RewriteCond%{HTTP_HOST} ^(WWW \。)?探頭\ .COM $ [NC]'你不使用EXP'(WWW \。)'作爲反向引用,'()'的目的就是爲了將'www \ .'分組,以便'?'適用於'www \ .'分段?另外,是否有一種方法可以在不使用'()'的情況下對'www \ .'進行分組,即,如果您明確不希望該分段被選爲背景參考? –
好問題。是的,它的目的是對字符序列進行分組,以便後面的'?'使它成爲可選項,但是作爲副作用,它也可以作爲後向參考。如果您不想將其作爲反向引用選取,請以「(?:www \。)?'開始組。開頭的'?:'字符序列現在使它成爲一個未被引用的組。 –
感謝您的解釋。但是,如果出現的請求是probe.com/register.php,那麼這將如何失敗,以至於它不會重定向到probewebsites.com/register.php? – Steve