簡體   English   中英

HTACCESS重定向而不是重寫

[英]HTACCESS Redirects instead of rewrite

嗨,我想使用apache .htaccess(Apache v 2.2.27)將www.domain.com/folder/*重定向到www.domain.com/folder/public/*

我已經寫了以下內容,但是它重定向或重寫(此處正確重定向,例如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保留在那里,那么URL www.domain.com/folder搜索此www.domain.com/folder/public/ 文件夾 ,我不知道為什么?

我將其用作laravel 5.3項目的根.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>

我做錯了什么?

/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/ ,請從folder/public/.htaccess # Redirect Trailing Slashes If Not A Folder...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM