.htaccess - 如果目录不存在,则需要PHP文件

时间:2014-02-15 20:58:33

标签: php .htaccess routing require

我想要一个带有get参数的PHP文件,当且仅当有人请求没有任何扩展名的URL,如.php和.html等(即目录)时,该目录也不存在。

例如: example.com/xyz 现在服务器上没有xyz目录.htaccess需要带有get参数的php文件 - myfile.php?url=xyz

2 个答案:

答案 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/xyzexample.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 )