我目前有一個博客設置作爲主站點的子文件夾,mydomain.com.au/blog/
,但/blog
是通過PHP動態生成的,並沒有物理存在。將子域重定向到動態生成的文件夾並屏蔽theurl
我創建了一個子域blog.mydomain.com.au
,我試圖讓它顯示一切就像mydomain.com.au/blog/
但掩蓋了網址,使其顯示blog.mydomain.com.au
。
我使用htaccess進行了幾次嘗試,並且關閉了幾次,但總是出現錯誤。下面是2次嘗試這讓我最接近預期的結果:
1日嘗試
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} ^blog\.mydomain\.com\.au$
RewriteRule ^.*$ http://www.mydomain.com.au/blog%{REQUEST_URI} [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
這將讓blog.mydomain.com.au
重定向到www.mydomain.com.au/blog/
,但並不能掩蓋的URL(地址欄會顯示www.mydomain.com.au/blog/
)。
第2次嘗試
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.com\.au$ [NC]
RewriteRule blog/(.*) http://blog.mydomain.com.au/$1 [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
這讓我最接近的一次。它重定向和掩蓋的URL只是我想要的方式爲/blog/
下的所有頁面(例如blog.mydomain.com.au/whatever/重定向到www.mydomain.com.au/blog/whatever/但面具網址爲blog.mydomain.com.au/whatever/),但它不會爲blog.mydomain.com.au
這樣做,該網址會重定向到www.mydomain.com.au
。
感謝您的回覆和非常有用的鏈接!我已經嘗試過你的規則,但同樣的事情發生。 blog.mydomain.com.au重定向到www.mydomain.com.au。此外,奇怪的是,它可以工作幾次,然後它不會......在添加我測試的規則後,通過單擊博客上的幾個鏈接清除了瀏覽器緩存。他們要去blog.mydomain.com.au/whatever,但是點擊幾下(可能是6)後,它回到www.mydomain.com.au/whatever ...我轉回到我的舊規則,但改變了301到302重定向。 – 2013-04-24 03:51:11
@RazvanCostica我想,博客中的鏈接有時是相對鏈接,有時候你有絕對的鏈接,包括域名。 – 2013-04-25 00:47:26
這種情況是這樣的:我有一個集成博客的網站,現在我正試圖將博客從www.mydomain.com.au/blog移動到blog.mydomain.com。au,根據我的客戶請求,實際上不必從博客中導出所有內容並在博客文件夾下重新創建它,因爲這非常耗時。因此,博客中的所有鏈接都有URL結構www.mydomain.com.au/blog/whatever/,並試圖將它們重定向到blog.mydomain.com.au/whtever。 – 2013-04-25 05:30:01