我要隐藏页面扩展名和$_GET
值
http://localhost/dice_mpc/members.php?as=c4ca4238a0b923820dcc509a6f75849b
http://localhost/dice_mpc/home.php?as=c4ca4238a0b923820dcc509a6f75849b
http://localhost/dice_mpc/profile.php?as=c4ca4238a0b923820dcc509a6f75849b
预期结果:
http://localhost/dice_mpc/members/c4ca4238a0b923820dcc509a6f75849b
答案 0 :(得分:1)
我找不到很好的副本(对此有很多问题),而且心情很好,所以我们开始:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^dice_mpc/(.+)/(.+)$ dice_mpc/$1.php?as=$2 [QSA,L]
</IfModule>
详细信息:
RewriteCond %{REQUEST_FILENAME} !-d
将阻止您访问现有文件夹的重写RewriteCond %{REQUEST_FILENAME} !-f
将阻止您访问现有文件的重写RewriteRule ^dice_mpc/(.+)/(.+)$ dice_mpc/$1.php?as=$2 [QSA,L]
将仅重写格式为{domain}/dice_mpc/{A}/{B}
的URL,因此如果{B}
不存在,它将不会重定向。 {A}
将转换为{A}.php
,{B}
将转换为?as={B}
QSA
表示将保留查询字符串({domain}/dice_mpc/{A}/{B}?test=1
将被重写为{domain}/dice_mpc/{A}.php?as={B}&test=1
),而L
意味着将在此处停止重写.htaccess
中有其他重写规则,则它可能会相互作用。如果这不是您想要的,请编辑问题本身。