需要一些mod_rewrite规则的帮助

时间:2010-12-17 04:15:50

标签: .htaccess mod-rewrite

我正在使用PHP的RouteMap并希望清理网址。

网址的格式为:

http://localhost/subfolder/index.php?controller/method/arg1

我如何将其转换为:

http://localhost/subfolder/controller/method/arg1

3 个答案:

答案 0 :(得分:0)

尚未对其进行测试,但我认为您需要以下内容:

 RewriteRule ^/subfolder/controller/(method/.*)$ /subfolder/index.php?controller/$1

答案 1 :(得分:0)

您可以在httpd.conf文件中尝试:

#start your engine
RewriteEngine on
#add www. for any url, not what you asked for, but kinda helpful SEO-wise
RewriteCond %{HTTP_HOST} ^mypage\.com
RewriteRule ^(.*)$ http://www.mypage.com$1
#rewrite stuff
RewriteRule ^/subfolder/(controller/method/arg1)/?$ /index.php?$1

那应该有用。我会改变最后一行,然后:

RewriteRule ^/subfolder/(controller/method/arg1)/?$ /index.php?p=$1

现在,在重新启动apache之前,请尝试测试配置文件是否正常。

user$ apachectl configtest

就是这样。

希望它有所帮助。

干杯

答案 2 :(得分:0)

RewriteRule ^products/([0-9][0-9])/$ /productinfo.php?prodID=$1 [R]
RewriteRule ^products/([0-9][0-9])$ /products/$1/ 

同一个.htaccess文件中的多个重定向可以按顺序应用,这就是它的作用