簡體   English   中英

Laravel 5.4中的301重定向中的問題

[英]Issue in 301 Redirect in Laravel 5.4

我將類別頁面的路線從/listing/category1/products/category1

舊路線:

Route::get('/listing/{slug}', 'ProductsController@listing');

新路線:

Route::get('/products/{slug}', 'ProductsController@listing');

現在,我想將Old Routes永久重定向(301)到New Routes

只有4-5個類別,因此我在.htaccess文件中的公共文件夾中添加了以下代碼,以使用Redirect 301腳本將所有舊URL手動Redirect 301到新URL,但這沒有用。

Redirect 301 /listing/category1 https://www.example.com/products/category1
Redirect 301 /listing/category2 https://www.example.com/products/category2

請注意,網站具有SSL certificate因此鏈接以https開頭。

在Stack Overflow或其他我找不到的網站中可能存在解決方案。

我也嘗試在.htaccess文件中添加以下代碼,但沒有用。

RewriteRule listing/category1 /products/category1 [R=301,L]
RewriteRule ^listing/([a-zA-Z0-9_-]+)$ products/category1

.htaccess文件的完整代碼如下:

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

    RewriteEngine On

    RewriteRule ^/?listing/([\w-]+)/?$ /products/$1 [L,NC,NE,R=301]

    # 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]

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

因此,請幫助我告訴我如何在Laravel 5.4中將舊路線永久重定向到新路線?

提前致謝!

這應該工作,

Route::any('listing/{any?}', function ($any = null) {
    return Redirect::to('/products/'.$any, 301); 
})->where('any', '.*');

暫無
暫無

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

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