[英].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.