2010-10-24 152 views
1

我想从/main.php?page=pages & id = gettingpaidfortakingsurveys到/ main/pages/getting-paid-taking-taking-surveys重定向此网址。CakePHP和.htaccess:如何重定向URL与查询字符串

谢谢!

[UDPATE]

我测试了它在我现有的CakePHP的.htaccess并没有奏效。

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteRule ^/main.php?page=(.+)&id=(.+) /main/$1/$2 [NC] 
RewriteRule ^$ app/webroot/ [L] 
RewriteRule (.*) app/webroot/$1 [L] 
</IfModule> 
+0

顺便说一下,不要忘记将IfMaodule更改为IfModule。 – 2010-10-25 14:27:47

回答

0

既然你似乎要与Apache的.htaccess要做到这一点,你需要的mod_rewrite模块。在.htaccess中,你需要这样的东西:

RewriteEngine on 
RewriteRule ^main.php?page=(.+)&id=(.+) /main/$1/$2 [NC] 

这应该让你/ main/pages/gettingpaidfortakingsurveys。这不会连字符,我不确定你会做到这一点,没有太复杂的东西。

+0

嗨那里似乎代码没有工作。我更新了这篇文章,所以你可以看到新的.htaccess。它实际上是在cakephp – 2010-10-24 09:19:02

+0

你的.htaccess比你在问题中提出的问题要多得多,所以我不能帮你解决问题,但是你有一个错误的'IfMaodule'。如果你不正确地做其他事情,请查阅'mod_rewrite'的文档,它只是基本的正则表达式。 http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html – greg 2010-10-24 12:16:51

+0

我弄错了这个错字。我需要它修复,所以我在webroot文件夹中创建了一个main.php并做了一些重定向,这是暂时的。谢谢你的时间。 – 2010-10-24 13:16:41

0

你有没有试过这个,我假设这只是一个页面的重定向。你需要把它放在Cake重写块的上面。第二部分必须是完整的URL:

Redirect 301 /main.php?page=pages&id=gettingpaidfortakingsurveys http://www.domain.com/main/pages/getting-paid-for-taking-surveys 
<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^$ app/webroot/ [L] 
    RewriteRule (.*) app/webroot/$1 [L] 
</IfModule> 

如果重写是暂时的,替代302 301

的URL /主体部分看起来并不很蛋糕友好。不应该只是/ pages/...?

相关问题