php - 如果文件夹不存在重写?

标签 php .htaccess mod-rewrite

我有以下 htaccess 文件:

RewriteEngine On
RewriteRule ^([^/]*)$ /bio.php?bio=$1 [L]

我需要它来执行以下操作:

  • 获取以下重写的 URL:http://www.website.com/john-smith去/bio.php?bio=john-smith(目前的那种作品)
  • 如果已经有一个文件夹(例如/about-us/),则改为显示该文件夹中的文件。目前它确实如此,但它在末尾添加了 ?bio=about-us。
  • 如果可能的话,理想情况下使用 & 而不使用尾部斜线。

非常感谢任何帮助。

谢谢

最佳答案

尝试这样的事情:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ bio/bio.php?q=$1 [L]

如果找到匹配的物理文件,第一行将跳过 RewriteRule;如果找到匹配的目录,第二行将跳过它。第三行是满足上述条件时执行的重写规则。

关于php - 如果文件夹不存在重写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4469658/

相关文章:

php - Doctrine 实体实现接口(interface)以进行打字提示

regex - 使用 htaccess 重定向到相同 URL 的小写版本

apache - 有什么方法可以让 Magento 主页使用静态 HTML 页面吗?

regex - 缺少参数时重写 URL

php - 具有重写规则的法语字符

php - pdf 下载按钮在 php 中不起作用

php - Laravel + MySQL : Retrieve POI's within a bounding box

ASP.Net如何通过web.config文件(.htaccess类似)限制对特定IP地址的访问到特定页面?

php - 优化 mod_rewrite

php - Mongo 中的 Map Reduce,将 mongo 查询转换为 php mongo