.htaccess规则从静态文件中提供“bla.php?id = 1”

时间:2015-06-25 09:36:27

标签: php apache .htaccess mod-rewrite

场合

我的文件名称为

extension=php_openssl.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
extension=php_shmop.dll
extension=php_pdo_sqlsrv_55_ts.dll
extension=php_dblib.dll

bla.php?id=1 不存在)包含纯HTML代码(例如,当您使用wget镜像网站时会发生这种情况)。

目标

访问

bla.php

它应该从静态文件domain.com/bla.php?id=1 而不是bla.php?id=1提供,并将查询字符串附加到它。使用十六进制的问号,即。 bla.php,但随后网址会发生变化而不会发生变化。

问题

我提出的解决方案是通过.htaccess在内部将URL中的问号重写为十六进制,到目前为止,我无法正常工作。如果有人有更好的想法达到从静态文件提供包含查询字符串的URL的目标,那将非常感激。以下是我没有运气的尝试:

domain.com/bla.php%3Fid=1

1 个答案:

答案 0 :(得分:0)

We have a solution for this, Please try the below code.

 RewriteCond %{ENV:REDIRECT_STATUS} =""
 RewriteCond %{QUERY_STRING} !=""
 RewriteRule ^(.*) /$1\%3F%{QUERY_STRING}