我的应用使用的实际网址是:
http://site.com/search.php?search=iPhone
但我希望能够用
实现同样的目标http://site.com/iPhone
我没有重写规则的经验,我该如何设置呢?
解决方案已经有效但新地址显示在地址栏中。我认为可以将其设置为好像页面位置
http://site.com/iPhone
无需更改显示
http://site.com/search.php?search=iPhone
这可能吗?感谢。
答案 0 :(得分:11)
在您网站的根目录中创建一个名为.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]
这样可以更容易地获得重定向的普通网页,例如关于我们或基本主页。
正如克里斯所说,这不是PHP而是Apache这样做,以及它是否有效取决于您的托管设置。
答案 1 :(得分:5)
您需要在.htaccess文件中指定类似的内容:
RewriteEngine on
RewriteRule /(.*) /search.php?search=$1
检查:
答案 2 :(得分: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
。听起来不错?