我有一些像这样的重写规则
RewriteRule ^dir/(.*)-something.html otherdir/file1.php?var1=val&var2=$1 [L,NC]
RewriteRule ^dir/ otherdir/file2.php?var1=val [L,NC]
dir/ 不是真正的目录。以上所有内容均按预期工作。
但是,用户可以输入类似
mysite.com/dir/asdfasdfasdfsdf
而且他们仍然被重定向到 file2.php。如果用户输入的都是垃圾内容,我更愿意提供 404 错误。
我猜我需要一个 RewiteCond 来测试斜线后的空格,然后才提供 file2.php,但我不确定如何编写它。
答案1
$
我认为如果在它的末尾加上一个,dir/
就可以了(请注意,我还没有测试过,所以请在投票给我之前先试一试)。$
表示“字符串结尾”,其含义与表示^
“字符串开头”相同。
RewriteRule ^dir/$ otherdir/file2.php?var1=val [L,NC]
祝你好运!
--杰德