4

所以我正在做一个我自己的项目,它与找工作有关。我希望网址显示为:site.com/search/developer,其中 developer 显然是搜索关键字。现在的事情是,通常当我单击搜索(提交按钮完成它的工作)并且 url 显示为:site.com/search.php?kword=developer 并且我确定 htaccess rewrite 不能改变 php 表单的行为方式以及如何他们格式化网址。

现在我有一个使用 javascript 的想法,这样当用户键入关键字时,我会使用它并通过 js 将页面重定向到 site.com/search/[keyword] 但我不确定这是否是个好主意(考虑禁用 javascript例)。

是否有任何体面/推荐的方式来实现我想要实现的目标,我知道这是因为我看到一些大网站这样做,只是我不知道最好的方法是什么。

先感谢您。

4

1 回答 1

4

你当然可以使用 Javascript 来制作它site.com/search/developer。对于禁用 Javascript 的极少数情况,您可以让他们提交带有最终 URL 的常规 HTML 表单site.com/search.php?kword=developer

好消息是,使用 mod_rewrite 您可以处理这两种情况,以便在浏览器中始终拥有漂亮的 URL。

通过启用 mod_rewrite 和 .htaccess httpd.conf,然后将此代码放在您.htaccessDOCUMENT_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=302R=301. R=301在测试你的 mod_rewrite 规则时避免使用(永久重定向)。

于 2013-06-21T21:38:45.967 回答