簡體   English   中英

.htaccess子域在Laravel中重寫

[英].htaccess sub-subdomain rewrite in Laravel

我安裝了使用標准.htaccess文件的Laravel安裝程序,該文件非常適合dev.mysite.com但在我的開發服務器上,我具有foo.dev.mysite.com和另一條路徑是bar.dev.mysite.com

路由工作正常,但請求未重寫為index.php,例如,當我轉到foo.dev.mysite.com/example我得到了404,但是當我轉到foo.dev.mysite.com/index.php?example它工作正常。

我有以下.htaccess文件:

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

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

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

首先,確保啟用了mode_rewrite。 我相信您可能已經做到了,但是我想確保沒有遺漏任何東西。 另一個測試是刪除IfModule條件,然后查看它是否失敗。

接下來,查看語法在2.2到2.4之間更改后,您正在運行的apache版本。 Optons默認設置在2.3.11中從“ All更改為“ FollowSymlinks 這應該沒什么大不了的,並且懷疑這是罪魁禍首,但將來可能會並為您節省麻煩。

接下來,嘗試將重寫條件放在vhost信息而不是htaccess文件中。 這可以在性能上有所幫助,並在重啟apache時(可能會抑制htaccess錯誤)向您提供控制台警告/錯誤提示。

<directory /var/www/mysite.com>
    Options -MultiViews
    AllowOverride ALL
    RewriteEngine On

    RewriteRule ^(.*)/$ /$1 [L,R=301]

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
</directory>

超出這一點,如果沒有來自服務器的更多日志或信息,我將一無所獲。 您還可以將CustomLog添加到虛擬主機中,並報告服務器處理的所有請求。

暫無
暫無

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

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