在我的Laravel应用程序中使用htaccess重定向用户

时间:2018-12-12 06:40:36

标签: laravel .htaccess

我在laravel应用程序中配置htaccess时遇到问题。

我正在使用以下代码将用户重定向到正确的路径。我试图将host_name添加到我的htaccess中,但它破坏了应用程序的内部页面。 IP地址重定向现在工作正常。

File : laravel_app/public/.htaccess

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    RewriteCond %{HTTP_HOST} ^10\.10\.10\.201$
    # RewriteCond %{HTTP_HOST} ^host_name$          -- It breaks the other page.
    RewriteRule (.*) http://host_name.maindomain.com/$1 [R=301,L]
</IfModule>

用户可以手动导航至ff:

http://host_name/login
http://10.10.13.201/login

但是我希望他们使用下面的严格路径:

http://host_name.maindomain.com/login

使用htaccess可以实现吗?

编辑: http://host_name.maindomain.com指向laravel_app/public

1 个答案:

答案 0 :(得分:1)

您无法链接RewriteCond,因此您的.htaccess的配置无效,因为它将仅尝试绑定最后一个条件,而第一个条件没有相应的规则:

尝试这样的事情:

RewriteCond %{HTTP_HOST} ^10\.10\.13\.201$
RewriteRule (.*) http://host_name.maindomain.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^host_name$      
RewriteRule (.*) http://host_name.maindomain.com/$1 [R=301,L]

See the demo