php .htaccess网址重写错误的参数

我使用.htaccess RewriteEngine有一个奇怪的问题.

我有一个简单的规则:

RewriteEngine On
RewriteRule ^(.\*)/(.\*).php$pages/test.php?lang1=$1&page1=$2 [L]

在pages / test.php中,我输入了以下php代码:

echo('lang: '.$_GET['lang1'].'< br />');    
echo('page: '.$_GET['page1'].'< br />');    
echo('querystring: '.$_SERVER['QUERY_STRING']);

因此,当调用http://test.local/en-US/something.php时,我会期望像:

lang: en-US    
page: something    
querystring: lang1=en-US&page1=something

相反,这是我从页面获得的奇怪输出:

lang: pages    
page: test    
querystring: lang1=pages&page1=test

有人可以帮我吗?

解决方法:

由于创建了循环,因此获得了该结果,请尝试使用以下几行:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/pages/test\.php$
RewriteRule ^(.*)/(.*)\.php$/pages/test.php?lang1=$1&page1=$2 [L]
上一篇:php-查询字符串的htaccess问题


下一篇:CTFHUB-文件上传之.htaccess文件利用