所以我有一个根文件夹,因为它是 .htaccess (它是一个 WordPress 版本):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
我在其中有一个名为 safetytraining-2 的子目录。对子目录的请求工作正常,我在 safetytraining-2 中有一个名为 true.php 的文件,它的内容是这样的:
<html>
<body>
<?php var_dump($_GET);
?>
</body>
</html>
现在在 safetytraining-2 中,我有一个 .htaccess,我正在尝试用它来测试 mod_rewrite。这是它的内容:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{THE_REQUEST} ^true\.php(.*)$
RewriteRule ^true\.php(.*)$ - [L]
RewriteRule ^(.*)$ true.php?p=$1 [L]
</IfModule>
现在问题来了。当我访问 website.com/safetytraining-2/foobar 时,我得到以下输出:
array(1) { ["p"]=> string(8) "true.php" }
这真的让我很困惑。我在第一条规则中加入了尝试阻止 apache 递归应用重写规则的条件,但我猜它没有帮助。无论我在 /safetytraining/ 之后放了什么,我都会不断得到这个输出。这里有什么帮助吗?您可以在 athanclark.com/safetytraining-2 查看该页面。任何帮助都是极好的!!