HTACCESS重定向而不是重写

时间:2016-10-04 12:44:02

标签: apache .htaccess mod-rewrite url-rewriting laravel-5.3

您好我想将www.domain.com/folder/*重定向到www.domain.com/folder/public/* 使用apache .htaccess(Apache v 2.2.27)

我写了以下内容,但它改为重定向或重写(这里重定向正确,如www.domain.com/folder/login显示页面www.domain.com/folder/public/login)

位于文件夹文件夹下的

.htaccess文件位于

之下
AddType application/x-httpd-php70 .php
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)$ /folder/public/$1 [L,R=301]
</IfModule>

如果我删除标志R = 301并且只保留L, 然后网址www.domain.com/folder搜索这个www.domain.com/folder/public/ 文件夹,我不知道为什么?

我正在使用它作为我的laravel 5.3项目的root .htaccess文件来删除公用文件夹,但我认为公用文件夹中的.htaccess文件正在发生这种冲突。

公共文件夹中的

.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 ^(.*)/$ /folder/public/$1 [L,R=301]

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

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

我做错了什么?

1 个答案:

答案 0 :(得分:0)

/folder/.htaccess内有此规则:

AddType application/x-httpd-php70 .php

RewriteEngine On

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

RewriteRule .* public/$0 [L]

# Redirect Trailing Slashes If Not A Folder...评论folder/public/.htaccess下的删除规则,因为您不在网址中公开public/