2012-04-07 30 views

回答

0

首先,我不明白重寫http://info.domainname.com/blog/?Tag=somedynamictaghttp://domainname.com/tag/somedynamictag的目的,因爲它必須是相反的。人們重寫網址來清除它們(即刪除?,&,=等字符),但是您正在添加所有這些內容並使網址變得繁瑣。

我想你沒有正確理解URL重寫的概念。讓我稍微解釋一下。

當您的網站訪問任何URL時,用戶鍵入或點擊的URL(在您的案例http://domainname.com/tag/somedynamictag)被重寫。但是你的問題告訴我你以另一種方式思考。您的理解是,訪問者點擊http://info.domainname.com/blog/?Tag=somedynamictag,並將被重寫爲http://domainname.com/tag/somedynamictag這是錯誤的!如果您這樣設置您的網站,http://domain.com/的每個網址都必須作爲單獨的文件或目錄存在,您似乎正在開發的動態網站預計不會有。所以我假設你已經理解你已經誤解了這個問題,或者你誤解了URL重寫的概念。以下是用於將http://domainname.com/tag/somedynamictag重定向到http://info.domainname.com/blog/?Tag=somedynamictag的.htaccess代碼。

RewriteEngine On 

RewriteCond %{HTTP_HOST} domainname.com 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([A-Za-z0-9]+)\/(.*)$ http://info.domainname.com/blog/?$1=$2 [L,R=301] 

如果你認爲你正確輸入了問題並理解URL重寫權,並確保你正在試圖做的是正確的,那麼這裏的htaccess的代碼(如果您想重定向http://info.domainname.com/blog/?Tag=somedynamictaghttp://domainname.com/tag/somedynamictag)。

RewriteEngine On 

RewriteCond %{HTTP_HOST} info.domainname.com 
RewriteRule ^blog\/\?([A-Za-z0-9]+)=(.*)$ http://domainname.com/$1/$2 [L,R=301] 

如果還是不行,在http://info.domainname.com/blog/ index.php文件,將下面的代碼:

<?php 
header("HTTP/1.1 301 moved permanently"); 
header("Location:http://domainname.com/blog/tag/".$_GET['Tag']); 
?> 

謝謝你的提問。在回答時,我學到了很多東西。

希望這能回答你的問題,

和平...

+0

非常感謝您的幫助。添加代碼後出現內部服務器錯誤。 .htaccess文件如下 #BEGIN WordPress的 RewriteEngine敘述在 RewriteBase/ 重寫規則^索引\ .PHP $! - [L] 的RewriteCond%{REQUEST_FILENAME} -f 的RewriteCond% {REQUEST_FILENAME}!-d RewriteRule。 /index.php [L] RewriteCond%{HTTP_HOST} info.domainname.com RewriteRule^blog \/\?([A-Za-z0-9] +)\ =(。*)$ http:/ /域名。com/$ 1/$ 2 [L,R = 301] #END WordPress 謝謝! – Hussain 2012-04-07 10:42:51

+0

我會在幾分鐘內更新。 – 2012-04-07 11:12:04

+0

你有mod_rewrite嗎? – 2012-04-07 11:22:50