我正在测试一个个人网站上安装的CMS(Joomla),希望在将其实际应用之前进行测试。我想要防止使用查询字符串,更确切地说是防止用户在查询字符串上输入内容(如更改文章ID等),但仍允许内部重定向使用查询字符串。
例如,防止某个人输入以下网址:
http://www.doamin.com/index.php?option=com_user&view=register
显示错误页面或重定向到不带查询字符串的index.php。
但仍允许重写规则
RewriteRule ^Register$ index.php?option=com_user&view=register RewriteCond %{QUERY_STRING} !^$ RewriteRule ^index.php$ index.php? [R=301] 显然,此规则会重定向所有查询字符串(但它也重定向/Register,这不是我想要的)。
最后,Register重写规则末尾的[L]标志并不能停止规则处理。
例如,防止某个人输入以下网址:
http://www.doamin.com/index.php?option=com_user&view=register
显示错误页面或重定向到不带查询字符串的index.php。
但仍允许重写规则
RewriteRule ^Register$ index.php?option=com_user&view=register RewriteCond %{QUERY_STRING} !^$ RewriteRule ^index.php$ index.php? [R=301] 显然,此规则会重定向所有查询字符串(但它也重定向/Register,这不是我想要的)。
最后,Register重写规则末尾的[L]标志并不能停止规则处理。
RewriteCond %{QUERY_STRING} !=""
是有效的吗???为了测试正则表达式中是否为空,应该使用RewriteCond %{QUERY_STRING} !^$
。 - Olivier PonsRewriteCond %{QUERY_STRING} !=""
是有效的吗?" 这是一个问题还是陈述?除非有什么改变,当我在2011年1月3日尝试时,它对我有效。 - Daniel TrebbienRewriteCond %{QUERY_STRING} !^$
。抱歉我没有表达清楚。 - Olivier Pons