如何正确使用mod_rewrite重定向seo URL?

时间:2015-03-31 15:21:19

标签: apache .htaccess mod-rewrite redirect

我有这些网址:

http://example.com/profiles/yourfullname/

但获取工作数据的实际网址是:

http://example.com/profiles?user=yourfullname

我一直在阅读,并试图了解这一点,但我明显遗漏了一些知识。

有一个页面,其中包含指向用户配置文件的链接列表,其中包含seo格式。但是,他们显然没有做任何事情,但会产生“Page Not Found”错误。

我已经尝试了以下mod_rewrite代码的各种版本。

#rewrite rule for profiles page
RewriteCond %{QUERY_STRING} user=(\w+)
RewriteRule ^profiles /%1? [R=301]
#end rewrite rule for profiles page

#rewrite rule for profiles page
RewriteRule ^profiles/([a-zA-Z0-9]+)/?$ profiles/?user=$1 [NC,L] 
#end rewrite rule for profiles page

但显然我不明白这是如何运作的。

有人可以帮助我,并提供背景信息吗?

谢谢!

添加了备注:

这是一个wordpress网站。

我所有的访问权限都是通过一个插件让我编辑.htaccess文件。

这是Wordpress的htaccess中的附加规则。

#rewrite rule for wordpress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
#end rewrite rule for wordpress

所以重申一下,我有一个现有页面http://example.com/profiles/yourfullname/,但我想要任何页面,停止执行“找不到页面”并重定向到http://example.com/profiles?user=yourfullname

更清楚了吗?

再次感谢你!

1 个答案:

答案 0 :(得分:0)

显然,重定向问题的原因与mod_rewrite无关。

这是一个wordpress网站,我无法弄清楚以前的开发人员如何设置正确的网址,因为没有重写规则。

但显然他们已经修改了他们使用的WordPress主题的404模板。

感谢大家的帮助!