Apache重写规则(url重写)

时间:2010-12-08 19:52:54

标签: regex mod-rewrite apache2

如何制作网址重写例如,我希望我看起来像

www.myurl.com/study-abroad/what/ever/

如果我输入

www.myurl.com/studyabroad/what/ever/

这个想法是出国留学而不是学习

2 个答案:

答案 0 :(得分:2)

如果您事先知道每个网址会遇到多少破折号,可以这样做:

RewriteEngine On

# Replacing a single dash, e.g. example.com/study-abroad/what/ever
RewriteCond %{REQUEST_URI} ^([^-]*)-([^-]*)$
RewriteRule ^([^-]*)-([^-]*)$ $1$2 [L]

# Replacing two dashes, e.g. example.com/study-abroad/what-ever
RewriteCond %{REQUEST_URI} ^([^-]*)-([^-]*)-([^-]*)$
RewriteRule ^([^-]*)-([^-]*)-([^-]*)$ $1$2$3 [L]

......等等。但是,我可以补充一点,这是因为设计破坏了,你应该重新考虑你的方法。

此致

答案 1 :(得分:0)

对于这样一个简单的例子,我会使用mod_alias重定向而不是mod_rewrite。例如:

Redirect permanent /studyabroad http://www.myurl.com/study-abroad

有关完整文档,请参阅http://httpd.apache.org/docs/2.0/mod/mod_alias.html#redirect

您需要将此(或类似)代码段放入Apache配置文件中:如果已启用(如果您具有适当的权限),则可能是您网站目录中的.htaccess。或者,您可以修改主Apache配置。有关Apache配置文件的信息,请参阅http://httpd.apache.org/docs/current/configuring.html

(编辑以反转映射:添加破折号而不是删除它)