2017-05-18 146 views
1

我是編程新手。我們有一個辦公室項目,該網站的網址是www.project.com.ph(樣本名稱),這已經是客戶端的一個實時網站。但是,發佈的打印輸出中有指示讓用戶轉到www.project.com/ph這是錯誤的,我們無法重新打印該材料,因爲它已經到達了很多活動場所。如何將新頁面(錯誤的URL)重定向到另一個頁面?

現在的問題是,如果用戶輸入瀏覽器的地址欄www.project.com/ph,我們需要自動重定向到www.project.com.ph。我問,如果沒有任何一種CMS或Wordpress,以及如何真正做到這一點,這是否可能?我們爲此購買了一個新域www.project.com。任何形式的幫助表示讚賞。

回答

0

從KJ。對類似的問題的答案,here

在你的.htaccess的www.project.com,這應該做的伎倆。

RewriteEngine on 
RewriteRule ^(.*)$ http://www.project.com.ph/ [R=permanent,NC,L] 

這將重定向到project.com域http://www.project.com.ph/

要包括路徑後/ph /`你可以用這個的任何請求。

RewriteEngine on 
# redirect including path after ph/ (e.g. project.com/ph/directory/file.php to project.com.ph/directory/file.php 
RewriteRule ^ph/(.*)$ http://www.project.com.ph/$1 [R=permanent,NC,L] 
# redirect any other requests to project.com.ph index 
RewriteRule ^(.*)$ http://www.project.com.ph/ [R=permanent,NC,L] 
+0

另一個問題,如果project.com.ph有多個子頁面,例如www.project.com.ph/sub/1234,www.project.com.ph/sub/5678等,這是否適用?或者這是一種需要另一種解決方案的新情況?謝謝! –

+0

我已經更新了我對這種情況的回答:) –

+0

同樣值得注意的是,如果兩個域使用相同的託管,您將需要定義完整的原始URL,例如N.Danielprabhakaran的答案。或者,在每個規則之前使用重寫條件。 'RewriteCond%{HTTP_HOST}^www.project.com $' –

0

您可以重定向(301重定向)在.htaccess文件

RewriteRule "http://www.project.com/ph/(.*)" "http://www.project.com.ph/$1" [L,NC,R=301] 
+1

這有一些錯誤......'RewriteRule' _pattern_匹配的URL路徑不包含主機名(所以這永遠不會匹配)。 _substitution_缺少_scheme_,所以會被視爲相對URL路徑(這會導致格式錯誤的重定向)。 _substitution_(我假設你打算使用,因爲你在_pattern_中有一個捕獲組,並且沒有它的情況下沒有那麼有用),反向引用也會丟失。 – MrWhite

0

使用RewritrRule的URL嘗試靠近你.htaccess文件中的www.project.com根頂部以下。該工程確定(但稍微低效率),如果兩個域都指向同一個地方,因爲它專門檢查,我們要求的「錯誤」的域名:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www\.)?project\.com$ [NC] 
RewriteRule ^ph/?(.*) http://www.project.com.ph/$1 [NC,R=302,L] 

這將重定向www.project.com/ph(沒有斜槓)請求,www.project.com/ph/(帶有斜線)和www.project.com/ph/<whatever>http://www.project.com.ph/<whatever>

這是一個臨時(302)重定向。只有當你確定它工作正常時,纔將它改爲永久(301)。

相關問題