.htaccess - PHP 重写规则

标签 .htaccess mod-rewrite

我的应用程序使用的实际 URL 是:

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

但我希望有可能实现同样的目标
http://site.com/iPhone

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

该解决方案已奏效,但新 URL 显示在地址栏中。我认为可以进行设置,使其看起来好像页面位置是
http://site.com/iPhone
不改变显示
http://site.com/search.php?search=iPhone 

这可能吗?谢谢。

最佳答案

在您网站的根目录中创建一个名为 .htaccess 的文件并将其放入其中。

RewriteEngine on 
Options +FollowSymlinks
RewriteBase / 

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

应该做的伎俩。

但是,我建议您将其设置得更具体一些,因此可能需要用户在您的 url 中使用搜索目录。例如,而不是 mysite.com/IPhone 使用 mysite.com/search/IPhone ,它会像
RewriteEngine on 
Options +FollowSymlinks
RewriteBase / 

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

这使得重定向正常页面变得更容易,例如关于我们或基本主页。

正如 Chris 所说,这不是 PHP 而是 Apache,它是否有效取决于您的托管设置。

关于.htaccess - PHP 重写规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/559186/

相关文章:

Apache 2.4 mod_rewrite 没有按预期工作

php - htaccess 重写规则在第一次出现时停止

php - Codeigniter htaccess 不工作

php - 拒绝使用 .htaccess 访问多个 .php 文件?

.htaccess - 反向代理 htaccess

htaccess 中附加域的 Wordpress SSL 问题

php - 重写两个不同的东西时发生内部服务器错误

apache - htaccess 利用浏览器缓存图像和 css

php - 配置 htaccess 以使用 Angular 和 PHP 路由

iis - 具有不同内容的两台服务器可以共享一个子域吗?