我有一個網址列表,如htaccess和URL重寫
http://www.mywebsite.com/page.php?genus=A_GENUS&species=A_SPECIES&id=12345
。
我想寫的.htaccess其永久重定向訪問這個網址的形式訪問以下網址的,
http://www.mywebsite.com/species/A_GENUS/A_SPECIES
。
有沒有可能做到這一點,而不必手動列出數據庫中的每個物種?
我試着去查看它,但是我的頭在WordPress-Custom-Post-Type域中,因此我的大腦無法正常工作。任何幫助將不勝感激。
編輯:澄清
目前我的.htaccess完全是空的。我正在重寫我的網站以使用全新的CMS和這種新的URL格式。舊的網址格式將不復存在,但所有信息仍將被使用。
我們在Google上很多物種的排名很高,我希望來自那裏的訪問者能夠查看他們需要的信息,而不管URL格式如何變化。
這些更改尚未發生(仍然使用沙盒環境用於新版本的站點),並且希望在新版本「上線」之前更改URL。
編輯2:新網站的.htaccess
新網站的.htaccess的內容是這樣的全部:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /sandboxfolder/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /sandboxfolder/index.php [L]
</IfModule>
# END WordPress
編輯加爾的回答
RewriteEngine On
RewriteBase /sandboxfolder/
RewriteCond %{QUERY_STRING} genus=([a-zA-Z0-9-]+)&species=([a-zA-Z0-9-]+)
RewriteRule ^profile.php$ /species/%1/%2 [R=302]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /sandboxfolder/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /sandboxfolder/index.php [L]
</IfModule>
# END WordPress
不知道我是否在那裏正確使用了RewriteBase,但它沒有出現功能有或沒有它。
問候,
你的htaccess目前包含什麼?舊的網址是否仍然有效?新的url是否已經被重寫(內部)到舊的? – Gerben 2011-12-27 14:24:20
對不起Gerben,我會相應地更新我的帖子。 – dunc 2011-12-27 14:27:37
新CMS不會使用任何htaccess?在舊網站上創建鏈接時,url參數是否始終按此順序排列? – Gerben 2011-12-27 14:39:46