我想要一个带有get参数的PHP文件,当且仅当有人请求没有任何扩展名的URL,如.php和.html等(即目录)时,该目录也不存在。
例如:
example.com/xyz
现在服务器上没有xyz
目录.htaccess需要带有get参数的php文件 - myfile.php?url=xyz
答案 0 :(得分:0)
从此代码段开始
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ myfile.php?url=$1 [PT,L]
ErrorDocument 404 /myfile.php
</IfModule>
答案 1 :(得分:0)
但如果我请求xyz?id = 1,它仍然只发送xyz。有什么办法吗? 无论什么是字符串
,都发送整个字符串
正如您所提到的,如果您要求example.com/xyz
或example.com/xyz?id=1
,您希望获得所有参数。然后使用它。注意QSA
标志。这将附加请求的查询字符串。我认为这是你正在寻找的答案。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /myfile.php?url=$1 [QSA,L]
因此,如果您请求此example.com/xyz?id=1&h=2
您的PHP print_r($_GET);
输出将是这个。
Array ( [url] => xyz [id] => 1 [h] => 2 )