這幾天在完善IDCTalk論壇的設(shè)置,設(shè)置完應(yīng)用的域名之后發(fā)現(xiàn)通過各個(gè)應(yīng)用的域名都可以訪問到相同的內(nèi)容,同一個(gè)內(nèi)容有多個(gè)入口,因此存在URL規(guī)范化問題。搜索了官方論壇,看到不少人存在這個(gè)問題,但是官方并沒有給出很好的解決方法,說明這個(gè)是程序的Bug,無法通過程序的設(shè)置來解決,只能想其他辦法。
由于Discuz各應(yīng)用的URL很有規(guī)律,所以想到可以用Rewrite來解決多入口問題,下面以論壇為例來說明,門戶和群組類似。
論壇的主要頁面的URI都是以 /forum 及/thread 開始的,因此可以加一個(gè)Rewrite規(guī)則,判斷如果請(qǐng)求的URI是以/forum 或/thread 開頭,那么就應(yīng)該是論壇的內(nèi)容,如果域名卻不是bbs.moke8.com ,那么就執(zhí)行301轉(zhuǎn)向到這個(gè)域名上。
規(guī)則如下:
RewriteCond %{HTTP_HOST} !(^bbs\.aizhanku\.com$) [NC]
RewriteCond %{REQUEST_URI} (^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$)|(^/forum-(\w+)-([0-9]+)\.html$)
RewriteRule ^(.*)$ http://bbs.aizhanku.com/$1 [L,R=301]
使用的時(shí)候要把域名換成你的網(wǎng)站對(duì)應(yīng)的域名{:soso_e113:}