簡體   English   中英

Apache2 模塊重寫它不能正常工作

[英]Apache2 Module Rewrite it is not working as it should

我在 PHP 中創建了一個 MVC 系統,並使用 Apache 重寫模塊來保護一些文件夾並編寫 URL。

我在使用 Xampp 的開發機器上創建了基礎,我什至在在線服務器(客戶端)上使用了相同的系統,一切正常。

但是我想在我工作的公司中設置的服務器上擁有相同的 MVC 系統,供其他開發人員使用,但該服務器無法正常工作。

On the server giving this problem, I have installed Ubuntu 20.04 (Desktop), Apache 2, PHP 7.4.13 and MySQL. 我已經啟用了重寫模塊。

我正在使用相同的 .htaccess,我在我的機器(Windows)和在線服務器(公共網絡服務器)Linux 上都使用它。

在我正在使用的 .htaccess 文件下方

我用來始終將客戶端重定向到公用文件夾的第一個 .htaccess 文件

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^$ public/ [L]
    RewriteRule (.*) public/$1 [L]
</IfModule>

這第二個在公用文件夾內,用於編寫 URL

<IfModule mod_rewrite.c>
    Options -Multiviews
    RewriteEngine On
    RewriteBase /criate/public
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
</IfModule>

后者位於 App 文件夾內,我使用它們無法訪問該文件夾

Options -Indexes

我的 Apache default.conf 文件

    <Directory "/var/www/html">
      Options Indexes FollowSymLinks
      AllowOverride All
      Order allow, deny
      allow from all
      Require all granted
   </Directory>

但是發生了什么,當訪問項目 url 時,我們假設它是: https://api.aplication.com

效果很好,帶我到應用程序之家。 但是,例如,當我單擊登錄按鈕時。 給我以下錯誤。

未找到 在此服務器上未找到請求 URL

但是有,因為我制作了一個在 Windows 和在線服務器 Linux 上運行的項目的副本。

我必須查看和分析什么配置才能解決此問題?

在 phpinfo 中,它說明了哪個模塊處於活動狀態。 謝謝

我已經發現我在 .htaccess 文件中做錯了什么,按照我在所有 .htaccess 文件中所做的更改。

RewriteEngine On
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]

Options -Multiviews
RewriteEngine On
RewriteBase /criate/public
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

它只是刪除了檢查模塊是否處於活動狀態的條件,我將進一步研究以了解如何在 LINUX 中執行這些條件。

暫無
暫無

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

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