根据URL重定向

时间:2015-12-06 04:19:05

标签: html apache .htaccess redirect web

我有以下情况: 我想像这样做一个重定向系统:

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

我现在唯一可以看到的方法是在/ redirect中执行子文件夹,这些子文件夹有一个重定向它的index.php。但我希望这是全自动的。

感谢您的回答!

1 个答案:

答案 0 :(得分:0)

如果你想重定向/重定向/(任何东西)到/page.php?place=(同名一样)

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

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

你要使用来自mod_rewrite

的RewriteRule命令
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表示找不到文件