2012-08-12 162 views
2

我已經在我的網站上爲索引頁面完成了RewriteRule。.htaccess多個頁面的重寫規則

這裏是下面的代碼:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteRule ^([a-zA-Z0-9+\-\(\)]+)/?$ /index.php?origin=$1 
RewriteRule ^([a-zA-Z0-9+\-\(\)]+)/([a-zA-Z0-9+\-]+)/?$ /index.php?origin=$1&gender=$2 
RewriteRule ^([a-zA-Z0-9+\-\(\)]+)/([a-zA-Z0-9+\-]+)/([a-zA-Z0-9+\-]+)/?$ /index.php?origin=$1&gender=$2&type=$3 
RewriteRule ^([a-zA-Z0-9+\-\(\)]+)/([a-zA-Z0-9+\-]+)/([a-zA-Z0-9+\-]+)/([a-zA-Z0-9+\-]+)/?$ /index.php?origin=$1&gender=$2&type=$3&page=$4 
</IfModule> 

,網址爲貌似

http://babynames.agurchand.com/scottish/male/pythagorean 

這是一個單頁的網站,讓一切工作正常爲止。 然後我想在我的網站上添加一個頁面,我也添加了。文件名是'namemeaning.php'。

我在底部添加了下面的代碼以及粘貼的htaccess。但它似乎沒有工作。

RewriteRule ^/namemeaning/([a-zA-Z0-9+\-\(\)]+)/?$ /namemeaning/namemeaning.php?name=$1 

我已經嘗試過以下網址,但我仍然只被引用到索引頁。

http://babynames.agurchand.com/namemeaning/abasi 

任何人都可以給我一個解決這個請!

回答

1

由於您的索引頁面的正則表達式符合您的請求,因此您被轉發到索引頁面。你被髮送到index.php?起源= namemeaning &性別=阿巴西

http://babynames.agurchand.com/namemeaning/abasi 
'namemeaning' fits the rule ([a-zA-Z0-9+\-\(\)]+) 
'abasi' fits the rule ([a-zA-Z0-9+\-]+) 

一個簡單的修正將被添加行

RewriteRule ^/namemeaning/([a-zA-Z0-9+\-\(\)]+)/?$ /namemeaning/namemeaning.php?name=$1 

線之上

RewriteRule ^([a-zA-Z0-9+\-\(\)]+)/?$ /index.php?origin=$1 

你應該記得總是把最具體的RewriteRule放在那些更一般的那些上面。

有關正則表達式的更多信息,我可以建議你this website

+0

解決了我的問題,粘貼代碼上面所有的他們謝謝! – agurchand 2012-08-12 09:32:30

0

從上到下依次檢查rewruite規則,並按照該順序應用匹配的所有規則。仔細檢查你的規則在所需規則之前是否匹配。 爲此目的的好工具是http://www.regextester.com/