我的主目录中有一个 htaccess 文件,它将所有顶级目录重定向到一个 PHP 文件。
->/Loch
将前往/profile.php?username=Loch
但我还有一个子目录,我们称之为test
我需要一条规则test
,说明“我的目录的任何子路径实际上都是 GET 变量。
例如,链接到/test/hello/hi
其实应该去/test/receiver.php?dataset=hello&action=hi
但是,当我在目录中的 htaccess 文件中使用以下规则时/test/
,它不起作用(我收到 500 错误)。
RewriteBase /
RewriteEngine On
RewriteRule ^(.*?)/(.*?)/?$ /receiver.php?dataset=$1&action=$2
RewriteRule ^(.*?)/?$ /receiver.php?dataset=$1
希望我提供的信息足够了,请帮忙!谢谢。
答案1
您的正则表达式无效。*
和?
都是适用于前一个字符的量词,因此*?
没有意义。您可能需要这个:
RewriteRule ^(.+)/(.+)/?$ /receiver.php?dataset=$1&action=$2
RewriteRule ^(.+)/?$ /receiver.php?dataset=$1