在Laravel 5.4上使用htaccess进行Stange

时间:2017-02-12 09:08:44

标签: .htaccess laravel routes

我在laravel 5.4上有API路由(prefix /API/v1/ ...)。现在它工作正常。当我添加一些期货(Fo网站路线,而不是API):

  1. 从www重定向到非www前缀
  2. 从http重定向到https
  3. 用于API路由任何类型的请求(使用www或不使用www或https)
  4. 当我为此添加重定向时,它工作正常,但API有错误(重定向到主站点页面)。

    RewriteEngine On
    
    # Handle Authorization Header 
    RewriteCond %{HTTP:Authorization} . 
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
    
    RewriteCond %{REQUEST_URI} !^/api/.*$ [NC] # no for api 
    RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
    
    # Redirect www to non-www 
    RewriteCond %{HTTP_HOST} ^www.example.ru$ [NC] 
    # RewriteCond %{REQUEST_URI} !^/api/.*$ [NC] # no for api 
    RewriteRule ^(.*)$ http://example.ru/$1 [R=301,L] 
    
    # Redirect http to https. 
    RewriteCond %{HTTPS} !=on 
    # RewriteCond %{REQUEST_URI} !^/api/.*$ [NC] # no for api 
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,QSA] 
    
    # Redirect Trailing Slashes... 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 
    
    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^ index.php [L]
    

    但是当我测试API路线时,它会重定向到主页example.ru/。例如: 我将POST调用http://www.example.ru/api/v1/login,我返回主页面的html代码。  哪里我搞错了。请帮忙。最好的问候。

0 个答案:

没有答案