2015-12-06 75 views
0

我有以下情形: 我想做一个重定向系统是这样的:根据URL重定向

/redirect/place1 -> /page.php?place=place1 
/redirect/testabc -> /page.php?place=testabc 
/redirect/xyzw123 -> /page.php?place=xyzw123 

我现在可以看到的唯一的办法就是做/重定向具有子文件夹一个index.php重定向它。但我希望这是完全自动的。

感谢您的任何答案!

+0

阿帕奇服务器?在.htaccess文件中的301重定向是要走的路。 – jdm2112

回答

0

如果你想重定向/重定向/(任何),以作为/page.php?place=(Same任何东西)

您可以使用从mod_alias重定向命令:

Redirect 301 /redirect/ /page.php?place= 

你婉使用重写规则COMAND从mod_rewrite

RewriteRule /redirect/(.*) /page.php?place=$1 [L] 

个更多信息:

  • [L]是那种重定向的,你可以,如果你想要做一个重定向条件,如增加一个状态代码[L,R = 301]将重定向发送301重定向永久

  • 在这里你可以找到所有的HTTP代码重定向 https://fr.wikipedia.org/wiki/Liste_des_codes_HTTP

  • 在这里你可以找到所有从改写状态标志 https://httpd.apache.org/docs/2.4/rewrite/flags.html

  • 如果你想重定向只有当页面或文件夹不存在:

    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f 
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d 
    RewriteRule /redirect/(.*) /page.php?place=$1 [L] 
    

!-d的意思是没有找到一个文件夹

!-f的意思是不是作为文件找到