簡體   English   中英

Apache vhost與CI .htaccess沖突

[英]Apache vhost conflicts with CI .htaccess

我正在通過Apache vhost文件中的以下代碼將網站的子文件夾重寫為子域:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. example.com
RewriteCond %{HTTP_HOST} ^(www\.)?(([^\.]+)\.){1}example.com$
RewriteCond /var/www/example.com/web/crm/build/%3 -d
RewriteRule ^/(.*) /crm/build/%3/$1

因此https://example.com/web/crm/ folder = https:// folder .example.com

我也使用.htaccesscodeigniter url中隱藏/index.php/

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
AddDefaultCharset utf-8

example.com/web/crm/folder工作正常

folder.example.com我收到505內部錯誤,一旦我刪除了.htaccess中的行,或者只是通過folder.example.com/index.php/簡單訪問了網站,它就會變好(日志中什么都沒有顯示)

我想修復子域的重寫沖突

好的,有兩個建議:

  1. 知道是什么具體的服務器端錯誤導致了HTTP 505,這將是很高興的。

    請復制/粘貼服務器登錄中的確切消息到您的帖子中。

  2. 確切地知道您的重寫規則是如何解釋的也很高興。

    請啟用日志記錄,如下所示:

如何調試Apache mod_rewrite

Apache模塊mod_rewrite

mod_rewrite在trace1到trace8日志級別提供其操作的詳細日志記錄。 可以使用LogLevel指令專門為mod_rewrite設置日志級別:進行級別調試時,不記錄任何操作,而trace8表示實際上記錄了所有操作。

 LogLevel alert rewrite:trace6 

George Samarguliani添加了此注釋,它解釋了HTTP 505錯誤:

在vhost文件中為httpd.service的作業添加重寫日志規則后,apache無法啟動,因為控制過程退出並顯示錯誤代碼,因此失敗。 有關詳細信息,請參見“ systemctl狀態httpd.service”和“ journalctl -xe”。

我將上面的虛擬主機代碼片段復制/粘貼到了第一個方便的Apache配置驗證器https://htaccess.madewithlove.be/中 ,並得到了:

htaccess.MadeWithLove驗證器

所以現在至少我們知道是什么導致了服務器端錯誤:Apache vhost配置。

新建議:

  1. 至於“ index.php”,我什至不認為您不需要或想要重寫規則。

    只需配置“ DirectoryIndex”,如下所示:

     <Directory /myapp> DirectoryIndex index.php </Directory> 
  2. 至於URL的其余部分(例如“ http: //example.com/web/crm/ build/ `),請在示例之前/之后更新您希望重定向如何實際工作的示例。

  3. 關於使用.httaccess / mod_rewrite規則,有很多很好的“ howtos”,其中有很多很好的例子。 例如:

固定

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
  ErrorDocument 404 /index.php
</IfModule>

暫無
暫無

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

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