2012-10-16 155 views
4

我希望它顯示的網址爲 /index.php?page=somePage&id=someID&siteAddress=someAddress/someAddress/?page=somePage&id=someID如何使用.htaccess重寫此網址

我該如何使用重寫規則呢?

+0

哪裏' someAddress'來自?這是'siteAddress'查詢字符串參數的值嗎? –

+0

固定爲更清晰的措辭。 siteAddress應該等於someAddress,即在兩個正斜槓之間提供的值。 – user1748794

回答

0

要在內部重寫/someAddress的index.php

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{QUERY_STRING} ^page=([^&]+)&id=([^&]+)$ 
RewriteRule ^/?([^/]+)/$ /index.php?page=%1%id=%2&siteAddress=$1 [L] 

在外部重定向的index.php/someAddress

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?page=([^&]+)&id=([^&]+)&siteAddress=(^[&\ ]+) 
RewriteRule^/%3/?page=%1&id=%2 [L,R=301] 
+0

我想在內部重寫它,所以我將該代碼添加到.htaccess。但該網站沒有顯示結果頁面。該網站是http://public.forumzbb.com/test/?page=register&id=null。我應該在頁面上看到的是http://public.forumzbb.com/index.php?page=register&id=null&siteAddress=test。是的,它應該顯示爲一個簡單的「網站未安裝」。文本。感謝您的幫助:) – user1748794

+0

@ user1748794您是否將這些規則放置在文檔根目錄下的htaccess文件的頂部?你確定mod_rewrite已打開嗎?你的虛擬主機/服務器配置中是否設置了'AllowOverride All'? –

+0

哎呀,謝謝。現在解決了,只是忘了在文件的頂部放置'RewriteEngine On'。再次感謝你 :) – user1748794