.htaccess多个RewriteRule不起作用

时间:2016-05-06 11:02:20

标签: php apache .htaccess mod-rewrite

多个RewriteRule不能用于我的.htaccess文件。

为了直截了当,我将这行代码放入我的.htaccess文件

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ ./index.php?lang=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/$ ./profile.php?page=$1 [L]

问题是当我在我的域中添加一个参数时,让我们假设www.eaxmple.com/something,我总是登陆主页。我想要做的是当我在结尾设置带斜杠的参数转到profile.php并且没有斜线移动到index.php。即使我试图输入一个参数,我总是移动到索​​引页面。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

.*会匹配所有内容,包括尾随/

按此顺序尝试规则:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L][

RewriteRule ^(.+)/$ profile.php?page=$1 [L,QSA]

RewriteRule ^(.*)$ index.php?lang=$1 [L,QSA]