簡體   English   中英

index.php作為laravel網站url中的參數

[英]index.php as a parameter in the url of laravel website

我發現可以使用index.php作為參數訪問任何laravel網站。

這是一個大問題,url參數中的index.php會破壞所有圖像。 看一個真實的例子來理解我的意思:

http://www.cyprusalive.com/main-thing/sightseeing
http://www.cyprusalive.com/index.php/main-thing/sightseeing

Googlebot使用index.php作為url參數讀取一些網址。 當有人通過google搜索使用index.php訪問網站時,這會影響所有圖像。

此外,這是一個糟糕的seo練習,因為產生重復的內容。

解決這個問題的最佳方法是什么?

可以使用nginx重寫規則修復該問題。 使用波紋管規則將帶有index.php參數的所有URL重定向到original laravel route url

location /index.php {
      rewrite ^/index.php(.*)$ http://$server_name$1;
}

另外,我把以下內容放到robots.txt

Disallow: /*index.php*

你的webroot或公共文件夾中是否有Laravel提供的.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 ^(.*)/$ /$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 GitHub獲取此.htaccess

此外,您可能需要檢查是否為您的網絡服務器啟用了重寫模式。

參考如何檢查服務器上是否啟用了mod_rewrite?

由於您使用的是NGINX,請檢查此項

你也可以這樣做......

1.打開apache \\ conf \\ httpd.conf並搜索此行

#LoadModule rewrite_module modules / mod_rewrite.so 2.然后刪除[#]並保存,然后重啟apache

暫無
暫無

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

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