我正在研究如何构建不同的 URL,我想知道是否可以替换 PHP 在 URL 中使用的查询字符串/问号符号“?” 变成别的东西?例如感叹号“!”
www.example.com!foo=1
这可能吗?
我正在研究如何构建不同的 URL,我想知道是否可以替换 PHP 在 URL 中使用的查询字符串/问号符号“?” 变成别的东西?例如感叹号“!”
www.example.com!foo=1
这可能吗?
当然可以,但是您需要重写规则来告诉服务器如何为它们提供服务。而且 PHP 不会为您自动解析它们,因此 $_GET/$_POST/$_REQUEST 变量不会被设置,您必须自己从 $_SERVER['REQUEST_URI'] 解析它们。
您不必为此使用 mod_rewrite,因为您仍然可以根据您的配置使用 $_SERVER["PATH_INFO"] 或 $_SERVER["REQUEST_URI"] 解释 url。只需在 ! 用爆炸并用parse_str解析它。如果这有意义,这是您的决定。
您也应该可以用 htaccess 替换它,但我无法测试它,因为我没有运行 atm 的 apache。一定是这样的。
RewriteEngine on
RewriteBase /
RewriteRule ^!(.*)$ http://domain.com/?$1 [R,NC]
如果可行,请从规则中删除“R”。