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