Apache htaccess将uri重写到get if not文件/文件夹中

Apache htaccess将uri重写到get if not文件/文件夹中,apache,.htaccess,url-rewriting,Apache,.htaccess,Url Rewriting,我需要一个htaccess规则,它可以将uri重写为get变量,如果它不是针对现有的文件或文件夹。 例如: 这是一个非常普遍的要求。在这个网站上大概有1000个关于这个的问题。您需要使用RewriteCond和REQUEST\u FILENAME查找不存在的文件夹,然后在内部重写以获取变量。基本上,如果它是404(不存在的URI)它将被路由到您的default.php文件。这就是URL的漂亮之处。您可以将其放在根目录下的.htaccess文件中 RewriteEngine On #prevent

我需要一个htaccess规则,它可以将uri重写为get变量,如果它不是针对现有的文件或文件夹。 例如:


这是一个非常普遍的要求。在这个网站上大概有1000个关于这个的问题。您需要使用
RewriteCond
REQUEST\u FILENAME
查找不存在的文件夹,然后在内部重写以获取变量。基本上,如果它是
404(不存在的URI)
它将被路由到您的default.php文件。这就是URL的漂亮之处。您可以将其放在根目录下的.htaccess文件中

RewriteEngine On
#prevent the use of the default.php file directly and redirect to friendly URI
RewriteCond %{THE_REQUEST} [A-Z]{3,9}\ /default\.php\?value=([^&\ ]+)
RewriteRule ^ /%1? [R=301,L]
#redirect non existent (404) folder to get variable
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /default.php?value=$1 [L]

您可能必须在代码中处理此问题,并根据需要重定向。Htaccess不知道这是404还是200。我很抱歉,如果我被认为是粗鲁或精英,但这不是一个请求论坛。你需要向社区表明你曾试图进行过研究,你之所以发帖是因为你无法理解/理解正在发生的事情。简单地说“我需要x”在这里是行不通的。很抱歉。我发现很令人沮丧的是,经过深思熟虑的问题被忽略了,而对代码的请求却在这个网站上得到了满足。它应该被标记为一个副本并继续,但是你的答案的质量仍然值得投票。我只是想澄清一下最近在这里出现的回答模式所带来的挫折感。@Tarquin谢谢你,你的观点是正确的,这就是为什么我至少尝试提供一点关于他需要什么的见解,而不是仅仅给出代码。应该有一些努力。我去过那里一次,所以只是想帮助别人。:)我完全理解。我也想回馈苏,因为多年来它一直对我很好。@PanamaJack谢谢你的解决方案,它确实很有帮助。@Tarquin如果我的提问方式困扰了你,我很抱歉。我是一个在这个网站上提出问题的新手,但有一点可以肯定,这个网站在过去对我帮助很大,我向你保证,在不久的将来发布问题时,我会考虑你的建议。
RewriteEngine On
#prevent the use of the default.php file directly and redirect to friendly URI
RewriteCond %{THE_REQUEST} [A-Z]{3,9}\ /default\.php\?value=([^&\ ]+)
RewriteRule ^ /%1? [R=301,L]
#redirect non existent (404) folder to get variable
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /default.php?value=$1 [L]