2015-08-28 107 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