2013-06-18 177 views
-1

首先我是初学者,所以请详细回答。用htaccess重写url

我的问题:我想写一个.htacess规则。

www.asdf.com/city.php?city=New-York to www.asdf.com/New-York 

也与我有其他的网页,如

www.asdf.com/country.php?country=USA 

,我想出现

www.asdf.com/USA and 

www.asdf.com/state.php?country=LA 

,我想出现

www.asdf.com/LA 

很困惑如何这样做,任何帮助,我真的需要解决这个问题。

在此先感谢

+0

你检查过**任何** mod_rewrite教程吗?这真的是在那里解释的第一件事 – zerkms

+0

PS:你如何确定在www.asdf.com/New-York应该使用'?city ='并且在'www.asdf.com/USA''? country ='应该是? – zerkms

+0

这是我感到困惑的。我将如何确定它是城市还是国家。 –

回答

1

林不知道我的做法是做的最好的方式,但是这是我正在做的那一刻:

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

重写所有页面的索引。 php

在index.php上,我得到的URL为:$ url = $ _SERVER [“REQUEST_URI”]; 然后我做一个MYSQL搜索来确定它是什么样的页面。

switch($pagetype){ 
    case "city": include('city.php'); 
    break; 
    case "country": include('country.php'); 
    break;  
} 
+0

不是您正在使用的这个类:'[a-zA-Z0-9_-] '相当于'[\ w-]'? –

+0

我认为你是对的。 http://stackoverflow.com/questions/11874234/difference-between-w-and-b-regular-expression-meta-characters – Jab