2015-11-08 127 views
0

我试图将现有流量重定向到重写的站点,该站点现在在Apache服务器上使用动态URL与RewriteRule,例如。将静态url重定向到动态

重定向重写URL的whatever.com/directory/some_pagewhatever.com/directory/?m=some_page

每个示例显示周围的其他方法(动态与静态),所以工作例子似乎很难得的。到目前为止,我尝试过的所有内容都没有任何效果,或者返回500服务器错

原来some_page仍然存在,但不是一个索引文件,它现在只是一堆的JPG文件

回答

0

的.htaccess被陷在一个循环,因为我无法得到它来处理查询字符串(最有可能是因为我缺乏经验的),所以我把那就是要使导航回到/directory/some_page 403的优势仍然存在但没有索引文件(.htaccess拒绝目录列表)。

403现在被发送到一个php错误页面,使用header()重定向到/directory/?m=some_page的正确地址。

我知道调用一个额外的页面的开销,但它不会经常发生(根据服务器日志),它的工作原理。

0

明白,你讲的例子是选择重写,其中,用户看到的网址是很重要重写,以便应用程序获取它可以理解的URL。尽管听起来像你想要的是一个重定向,它是在客户被发送到应用程序之前,客户获得的URL被更改为新的URL的地方。

重定向从whatever.com/directory/?m=some_page到whatever.com/directory/some_page您可以执行此操作。

RewriteBase/
RewiteCond %{QUERY_STRING} m=([^&]+) [NC] 
RewriteRule ^directory/.? /directory/%1 [NC, L, R] 

重写从whatever.com/directory/?m=some_page到whatever.com/directory/some_page你可以做到这一点。

RewriteBase/
RewiteCond %{QUERY_STRING} m=([^&]+) [NC] 
RewriteRule ^directory/.? /directory/%1 [NC, L] 

重定向从whatever.com/directory/some_page /目录/ΔM= some_page你可以做到这一点。

RewriteBase/
RewriteRule ^directory/([^/]+)/? /directory/$1 [NC, L, R] 

重写从whatever.com/directory/some_page /目录/ΔM= some_page你可以做到这一点。

RewriteBase/
RewriteRule ^directory/([^/]+)/? /directory/$1 [NC, L] 

从阅读你的问题我不完全知道你正在尝试做的,但上面的应该解决这个问题。

+0

我需要重定向从静态地址到动态。它现在排序。 – Eeji