php 搜索表单和 url 重写/格式化
Posted
技术标签:
【中文标题】php 搜索表单和 url 重写/格式化【英文标题】:php search form and url rewrite/formatting 【发布时间】:2013-06-19 02:27:03 【问题描述】:所以我正在做一个我自己的项目,它与 求职。我希望网址显示为: 开发者所在的 site.com/search/developer 搜索关键字明显。现在的事情 是不是像往常一样当我点击搜索时( 提交按钮完成它的工作)并出现网址 作为: site.com/search.php?kword=developer 我确定 htaccess 重写不能改变 php 表单的方式 行为以及它们如何格式化 url。
现在我有了一个使用 javascript 的想法,这样当 用户键入一个关键字,我接受它并重定向 页面通过 js 到 site.com/search/[keyword] 但我 不确定这是否是个好主意(考虑禁用 javascript 案例)。
是否有任何体面/推荐的方法来实现 我正在努力实现,我知道这是因为我有 看到一些大网站只做我不知道是什么 最好的方法。
提前谢谢你。
【问题讨论】:
【参考方案1】:您当然可以使用 Javascript 来制作 site.com/search/developer
。对于禁用 Javascript 的极少数情况,您可以让他们提交常规 html 表单,最终 URL 为 site.com/search.php?kword=developer
。
好消息是,使用 mod_rewrite 您可以处理这两种情况,在浏览器中始终拥有漂亮的 URL。
通过httpd.conf
启用mod_rewrite和.htaccess,然后把这段代码放到你.htaccess
的DOCUMENT_ROOT
目录下:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
# internal forward
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^search/(.+?)/?$ /search.php?kword=$1 [L,QSA,NC]
# external rewrite
RewriteCond %THE_REQUEST ^[A-Z]3,\s/+search\.php\?kword=([^\s]+) [NC]
RewriteRule ^ /search/%1? [R=302,L]
一旦您确认它工作正常,请将R=302
替换为R=301
。在测试你的 mod_rewrite 规则时避免使用R=301
(永久重定向)。
【讨论】:
您好,感谢您的回复。我需要确认解决这种情况的最佳方法是什么。嘿,也感谢 htaccess 代码和建议。以上是关于php 搜索表单和 url 重写/格式化的主要内容,如果未能解决你的问题,请参考以下文章