允许在 htaccess 中重写所有子目录的特定文件

时间:2021-01-07 20:25:17

标签: php .htaccess

不确定我是否准确地为我的问题命名。我有这样的目录结构:

example.com/edit/43424242/

末尾的数字实际上不是文件夹。它实际上只是我想在 /edit/index.php 目录中使用的一个变量。

我尝试在根目录下的 .htaccess 文件中使用它:

RewriteEngine ON
RewriteRule %{QUERY_STRING} ^$
RewriteRule ^edit/(.*)/?$ edit/index.php?var=$1 [NC,L]

但这没有用,因为它把我的 AJAX 帖子弄乱了到该目录中的另一个文件 /edit/post.php

所以我想也许我需要修改我的 .htaccess 文件,以便我仍然可以将子目录作为变量检索,并且仍然能够使用 post.php 或者修改 .htaccess 以便它允许 index.php 与post.php。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

RewriteRule %{QUERY_STRING} ^$

检查空查询字符串是不够的,因为它不会阻止此规则影响真实文件和目录的服务。

您可以使用此规则:

RewriteEngine ON

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^edit/([\w-]+)/?$ edit/index.php?var=$1 [NC,L,QSA]
相关问题