[英]500 Error on apache server - “AllowOverride not allowed here”
[英]500 Internal Server Error after changing AllowOverride to All in Ubuntu
我的項目在 Blue 主機共享主機以及我的 XAMPP 本地主機中運行良好。
為了測試,我們將文件移動到本地 ubuntu 服務器。 但是 .htaccess 在這個 ubuntu 服務器中不起作用。
這意味着文件可以使用 .php 擴展名訪問,但在沒有 .php 擴展名的情況下訪問時會出現 404 錯誤。
http://172.31.0.55/project/contact.php
有效,但
http://172.31.0.55/project/contact
顯示 404 錯誤
這是我使用的 htaccess 代碼。
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /project/
## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php[\s?] [NC]
RewriteRule ^ %1 [R=301,L]
# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/project/$1.php -f
RewriteRule ^(.+?)/?$ /project/$1.php [L]
Options All -Indexes
RewriteCond %{HTTP_REFERER} !^http://(www\.)?172.31.0.55/project/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?172.31.0.55/project/.*$ [NC]
ErrorDocument 403 http://172.31.0.55/project/403-error
ErrorDocument 404 http://172.31.0.55/project/404-error
經過一番研究,我更改了/etc/apache2/apache2.conf
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride none
Require all granted
</Directory>
到
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
但是現在它在嘗試訪問http://172.31.0.55/project/
時顯示 500 Internal server error
服務器版本是Apache/2.4.18 (Ubuntu)
它是一個 PHP 網站
我可以在http://172.31.0.55/ Apache 默認頁面中看到以下代碼
The configuration layout for an Apache2 web server installation on Ubuntu systems is as follows:
/etc/apache2/
|-- apache2.conf
| `-- ports.conf
|-- mods-enabled
| |-- *.load
| `-- *.conf
|-- conf-enabled
| `-- *.conf
|-- sites-enabled
| `-- *.conf
我嘗試在 htaccess 中從 ip 地址更改為 localhost。 但不工作
我檢查了文件權限它的rwx rwx rx
我做了這些更改參考https://askubuntu.com/questions/421233/enabling-htaccess-file-to-rewrite-path-not-working
默認情況下,Apache 禁止使用 .htaccess 文件來應用重寫規則,因此首先您需要允許對文件進行更改。 在此路徑/etc/apache2/sites-available/000-default.conf 中使用 nano 或您喜歡的文本編輯器打開默認的 Apache 配置文件
$ sudo nano /etc/apache2/sites-available/000-default.conf
在該文件中,您會發現從第一行開始的<VirtualHost *:80>
塊。 在該塊內,添加以下新塊,使您的配置文件如下所示。 確保所有塊都正確縮進。
<VirtualHost *:80>
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
. . .
</VirtualHost>
保存並關閉文件。 要使這些更改生效,請重新啟動 Apache。
$ sudo systemctl restart apache2
我按照這些步驟操作,我的問題解決了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.