我的简单重写规则不起作用

时间:2013-11-19 11:55:42

标签: php .htaccess mod-rewrite

规则1

RewriteRule ^ajax/([0-9]+)$ ajax.php?module=$1 [NC,L]

规则2

RewriteRule ^([a-zA-Z0-9\/\-\ñ]+)$ index.php?el9sJ6Fe%gY=$1

我想要的是,如果网址是这样的:

  

mysite的/ AJAX / 7

转到

  

mysite / ajax.php?module = 6 //或任何数字

如果网址类似

  

mysite的/东西-这里/ gototheindex

转到

  

mysite / index.php?el9sJ6Fe%gY = chars //任何字符或任何数字[a-zA-Z0-9 / - \ _]]

它适用于第二个规则,但它不适用于第一个规则,因为浏览器转到ajax.php但我在$ _GET中有一个空数组 谢谢,抱歉语言不好

2 个答案:

答案 0 :(得分:2)

首先,确保Multiviews已关闭。第二,确保按正确顺序排列规则:

Options -Multiviews

RewriteEngine On

RewriteRule ^ajax/([0-9]+)$ ajax.php?module=$1 [NC,L,QSA]

RewriteRule ^([a-zA-Z0-9\/\-\ñ]+)$ index.php?el9sJ6Fe%gY=$1 [L,QSA]

答案 1 :(得分:1)

尝试此而不是第一个规则

RewriteRule ^ ajax /([0-9] +)$ ajax.php?module = $ 1 [PT]