2015-09-04 49 views
-1

我搜索並嘗試了幾種可能的解決方案。縮短動態網址的問題

我開始:

 
http:// example.com/ 729/start-page.asp?cid=4004 
http:// example.com/ 729/start-page.asp?cid=7916 

,並試圖爲:

 
http:// example.com/ johns-start-page 
http:// example.com/ judys-start-page 

或者如果可能的話:

 
http:// johns-start-page.example.com/ 
http:// judys-start-page.example.com/ 

到目前爲止我有:

 
RewriteEngine on 
RewriteCond %{QUERY_STRING} ^cID=4004$ 
RewriteRule ^729\.asp$ /johns-start-page [NC,R=301,L] 

RewriteCond %{QUERY_STRING} ^cID=7916$ 
RewriteRule ^729\.asp$ /judys-start-page [NC,R=301,L] 
+0

@Jon Lin,試過你的第一個解決方案,但它被忽略了。不確定{THE_REQUEST}是否是佔位符或 RewriteCond%{THE_REQUEST}是否逐字進入代碼。 – fitcher

+0

這是我在SO上的第一個問題。我現在看到,這是一個嚴重問題或-2投票平原蹩腳問題。我本可以在更好的問題上使用建議,而不是踢屁股。非常感謝。 – fitcher

回答

2

只要你硬編碼這些事情,你可以嘗試:

RewriteEngine On 

RewriteCond %{THE_REQUEST} \ /+729/start-page.asp\?cid=4004($|\ |\&) 
RewriteRule^/johns-start-page? [L,R=301] 

RewriteCond %{THE_REQUEST} \ /+729/start-page.asp\?cid=7916($|\ |\&) 
RewriteRule^/judys-start-page? [L,R=301] 

RewriteRule ^johns-start-page$ /729/start-page.asp?cid=4004 [L,QSA] 
RewriteRule ^judys-start-page$ /729/start-page.asp?cid=7916 [L,QSA] 

對於子域,你將需要確保你的DNS設置指向這些子域相同的IP地址。然後像這樣:

RewriteEngine On 

RewriteCond %{HTTP_HOST} !^johns-start-page\.example\.com$ [NC] 
RewriteCond %{THE_REQUEST} \ /+729/start-page.asp\?cid=4004($|\ |\&) 
RewriteRule^http://johns-start-page.example.com/? [L,R=301] 

RewriteCond %{HTTP_HOST} !^judys-start-page\.example\.com$ [NC] 
RewriteCond %{THE_REQUEST} \ /+729/start-page.asp\?cid=7916($|\ |\&) 
RewriteRule^http://judys-start-page.example.com/? [L,R=301] 

RewriteCond %{HTTP_HOST} ^johns-start-page\.example\.com$ [NC] 
RewriteRule ^$ /729/start-page.asp?cid=4004 [L,QSA] 

RewriteCond %{HTTP_HOST} ^judys-start-page\.example\.com$ [NC] 
RewriteRule ^$ /729/start-page.asp?cid=7916 [L,QSA] 

但是,除非你設置它們包括FQDN,否則所有的鏈接都可能中斷。