2015-08-28 105 views
1
RewriteEngine on 

RewriteRule ^admin/api/(.*)$ admin/api.php?method=$1 [QSA,L] 
RewriteRule ^admin/(.*)$ admin/index.php [QSA,L] 

RewriteRule ^api/(.*)/$ api.php?method=$1 [QSA,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteCond %{REQUEST_URI} !\.(?:css|js|jpg|png|gif|svg|eot|ttf|woff)$ [NC] 
RewriteRule (.*) index.php [QSA,L] 

我想为管理模块单独的API入口点,但重写不起作用,因为我想。重写规则有什么问题?一些重写规则不起作用(.htaccess)

host.com/page - 作品(的index.php),

host.com/admin/page - 工程(/admin/index.php),

host.com/admin/ api/section - 执行/index.php(但预期为/admin/api.php)

回答

1

这是因为您的规则循环为admin/.*模式也匹配admin/api.php。有这样的规则:

​​
+0

此解决方案的工作原理!你能解释一下为什么它不会停止与L旗的第一场比赛? – user3168823

+0

'L'并不是所有的规则,它只是强制'mod_rewrite'从头再次执行。这就像'while'循环的'继续'。 – anubhava