2017-01-04 67 views
1

已搜尋並應用於許多可用的重寫規則,但無濟於事,非WWW到www用於HTTP和HTTPS不工作

我想

http://website.io/paypal應該去http://www.website.io/paypal 但它只是去到www主頁http://www.website.io

對於https應該是相同的。或者至少非www重定向到https://www.website.io/paypal是好的,但應該帶有頁面名稱。

許多試驗和錯誤的版本後這裏是最接近的一個我有它不工作好

RewriteEngine on 

RewriteCond %{HTTP_HOST} !^www\. 
RewriteCond %{HTTPS}s on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

# WordPress Defaults 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

UPDATE

這似乎沒有錯重定向雖然,www和非www域被映射到不同的ip,因此在非www網址上找不到。

+0

你可以在wordpress admin paneld - > Settings - > Common中定義這個。呦你不需要在'.htaccess'中設置這個 –

+0

你有沒有把你的家庭和網站的網址設置爲www版本?檢查這個答案http://stackoverflow.com/a/41198097/5019802 –

+0

是的,它在那裏 –

回答

0

這是您的確切工作代碼。這將完美地將您重定向到您想要的頁面。

RewriteEngine on 

RewriteCond %{HTTP_HOST} !^www\. 
RewriteCond %{HTTPS}s on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI}paypal [R=301,L] 

# WordPress Defaults 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

注意:只有下面這行有一些小的變化,否則你做了偉大的工作。

RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI}paypal [R=301,L] 

讓我知道它是否解決了您的問題?

+1

傷了我的眼睛... – sepehr

+0

添加上面的代碼將帶你到www.website.io/paypal這是什麼等於http://www.website.io/paypal現在有什麼問題? –

+1

「www.website.io/foo」或「www.website.io/bar」怎麼樣? '%{REQUEST_URI}'處理主機之後發生的任何事情,無論是「paypal」,「foo」還是「bar」。真正的問題是爲什麼它不在OP的機器上工作。或者爲什麼'%{REQUEST_URI}'爲空? – sepehr

相關問題