2011-03-03 98 views
0

我已經搜索了一段時間,並有一個在調整此文件我自己去,我幾乎在那裏,但有一個我無法弄清的情況... 如何獲得兩個萬維網。和一個正斜槓使用.htcaccess重定向到www。並添加尾隨正斜槓

如果我輸入spectrl.com,它將重定向到www.spectrl.com正確 - 添加www。
如果我在www.spectrl.com/ebaycalculator輸入重定向到www.spectrl.com/ebaycalculator/正確的 - 添加/

但是,如果我在spectrl.com/ebaycalculator型我得到一個404錯誤時,它應該去www.spectrl .COM/ebaycalculator/

這是我的.htcaccess文件,保存在根:

RewriteBase/

Options +FollowSymlinks 

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !(.*)/$ 
RewriteRule ^(.*)$ http://spectrl.com/$1/ [L,R=301] 

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

感謝

回答

0

刪除並重新上傳.htaccess,然後清除緩存後,一切似乎按照預期使用我的原始代碼在問題。
希望這會對別人有幫助。

0

@Kavi

嘗試這種情況:

RewriteEngine On 

RewriteCond "%{HTTP_HOST}" "^(?:www\.)?(.*)" [NC] 
RewriteCond "%{REQUEST_URI}" "!/$" 
RewriteRule "(.*)"   "http://www.%1%/$1/" [R=301,L] 

RewriteCond "%{HTTP_HOST}" "!^www\."   [NC] 
RewriteRule "(.*)"   "http://www.%1/$1" [R=301,L] 

第一RewriteCond在參考%1捕獲的主機名(沒有任何前導www.)。這種情況總是會成功的。

第二個RewriteCond檢查結尾的斜線;如果找不到,則會觸發下一個RewriteRule

第一個RewriteRule使用捕獲的www. -less主機名來構建重定向,其中包括www.和訓練/

如果請求通過,則會觸發第二節,因爲它確實有有尾隨/。它檢查前導www.,並且做同樣的重定向(僅在沒有附加斜槓的情況下,因爲已經有一個斜槓)作爲第一節。

至少,應該是的工作方式;我沒有測試過它。 :-)

+0

恐怕這不起作用。 追加的斜槓被添加,但www。部分是壞的,它重定向到www./ – Kavi 2011-03-03 23:31:42

+0

我恢復到我的原來的,現在也是這樣做!非常奇怪的行爲... – Kavi 2011-03-03 23:45:44

相關問題