我有以下情况: 我想像这样做一个重定向系统:
/redirect/place1 -> /page.php?place=place1
/redirect/testabc -> /page.php?place=testabc
/redirect/xyzw123 -> /page.php?place=xyzw123
我现在唯一可以看到的方法是在/ redirect中执行子文件夹,这些子文件夹有一个重定向它的index.php。但我希望这是全自动的。
感谢您的回答!
答案 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
表示找不到文件