所以我正在研究我的自我项目,这与我有关 找工作。我希望网址显示为: site.com/search/developer,开发人员在哪里 显然是搜索关键字。现在的事情 就像我点击搜索时那样正常 提交按钮完成它的工作)并显示网址 如: site.com/search.php?kword=developer我确定 htaccess重写不能改变php形式的方式 表现以及他们如何格式化网址。
现在我有一个想法,以便在使用时使用javascript 用户键入一个关键字,我接受并重定向 页面通过js到site.com/search/[keyword]但我是 不确定这是不是一个好主意(考虑到残疾人 javascript案例)。
是否有任何体面/推荐的方式来实现目标 我想要实现,我知道因为我有 看到一些大网站只做我不知道是什么 最好的方法。
提前谢谢。
答案 0 :(得分:3)
您当然可以使用Javascript来制作site.com/search/developer
。对于极少数情况下禁用Javascript,您可以让他们提交常规HTML表单,最终网址为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
(永久重定向)。