网址: http://example.com/good_game/osmp/
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)(.*)$ /?service=$1&terminal=$2 [L,QSA]
我收到了
Array ( [service] => good_game [terminal] => /osmp/ )
我需要
Array ( [service] => good_game [terminal] => osmp )
我需要什么RewriteRule才能使用多个项目?
答案 0 :(得分:1)
这应该给你你想要的东西:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/?$ /?service=$1&terminal=$2 [L,QSA]
您的规则问题在于您在第一个群组后使用(.*)
,因此该群组将留下/anything/
的任何内容。
所以基本上你的规则告诉服务器得到的东西不是/
所以它得到了good_game,然后你要求它得到任何东西以便得到/osmp/
。
答案 1 :(得分:1)
RewriteRule,如:
RewriteRule ^/([^/]*)/([^/]*)/?$ /?service=$1&terminal=$2 [L,QSA]
应该做你需要的。基本上,将您不想要的字符放在()之外的参数中以避免捕获它们。