Php .htaccess-如果目录不';不存在
我想要一个带有get参数的PHP文件,当且仅当有人请求一个没有任何扩展名的URL,如.PHP和.html等(即目录),并且该目录也不存在时 例如:Php .htaccess-如果目录不';不存在,php,.htaccess,routing,require,Php,.htaccess,Routing,Require,我想要一个带有get参数的PHP文件,当且仅当有人请求一个没有任何扩展名的URL,如.PHP和.html等(即目录),并且该目录也不存在时 例如: example.com/xyz 现在服务器上没有xyz目录。htaccess需要一个带有get参数的php文件-myfile.php?url=xyz从这个代码段开始 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f
example.com/xyz
现在服务器上没有
xyz
目录。htaccess需要一个带有get参数的php文件-myfile.php?url=xyz
从这个代码段开始
<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>
重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$myfile.php?url=$1[PT,L]
ErrorDocument 404/myfile.php
但是如果我请求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
你的PHPprint\r($\u-GET)代码>输出将如下所示
Array ( [url] => xyz [id] => 1 [h] => 2 )
非常感谢:)它起作用了。。但是如果我请求xyz?id=1
它仍然只发送xyz
。不管字符串是什么,有没有办法发送整个字符串?您必须编写(或查找)url解析器函数。您只能使用.htaccess获取参数。。。这里的xyz不是参数,此文件名或查询字符串的一部分。。。谷歌这个“php url解析器”好的,谢谢:):D谢谢你的回答。:)太棒了,谢谢。。一个字改变了整个程序:)可能重复的