2009-02-17 58 views
7

的实际网址是:这我的应用程序使用PHP重写规则

http://site.com/search.php?search=iPhone 

,但我想它可以达到同样的用

http://site.com/iPhone 

我没有任何的重写规则的经验,我该如何设置?

该解决方案的工作,但新的URL显示在地址栏中。我认为这将是可能设置这使得它看起来好像页面位置是

http://site.com/iPhone

不改变显示

http://site.com/search.php?search=iPhone 

这可能吗?谢谢。

回答

10

创建一个名为.htaccess文件在你的网站的根,并把它放在它。

RewriteEngine on 
Options +FollowSymlinks 
RewriteBase/

RewriteRule ^(.*) search.php?search=$1 [R] 

应该这样做。

我不过建议你说得具体一点,所以也许需要一个搜索目录的用户在您的网址。例如,而不是使用mysite.com/IPhone其中mysite.com/search/IPhone将工作像

RewriteEngine on 
Options +FollowSymlinks 
RewriteBase/

RewriteRule ^search/(.*) search.php?search=$1 [R] 

这使得它更容易有ARNT重定向页面正常,如关于我们或者一个基本的网页。

正如克里斯所说,这不是PHP,但Apache做到这一点,它是否有效可以取决于您的主机设置。

3

据我所知,重写规则不是PHP的一部分,但Apache(特别是mod_rewrite)或任何您使用的服务器。对于Apache,你需要在服务器上有一个名为.htaccess文件,并在其中放像:

RewriteEngine on 
RewriteRule ^(\w+)/?$ /index.php?search=$1 

^(\w+)/?$是一个正则表达式 - 这1个或多个字符的任何单词匹配,其次是/可能。所以它将site.com/iPhone更改为site.com/index.php?search=iPhone。听起来正确吗?