Php

.htaccess 向子文件夾的 index.php 發送請求

  • August 6, 2020

我已經在 StackOverflow 上搜尋了我的答案,但我所看到的似乎沒有任何效果。

我有一個將所有請求發送到index.php文件的框架。當我將它安裝在虛擬主機的根目錄中時,一切正常:

http://example.com/
http://example.com/home
http://example.com/home/index

當我嘗試將框架安裝在子目錄中時會出現問題,例如:

http://example.com/blog/

像這樣的請求:

http://example.com/blog/home
http://example.com/blog/home/index

所有這些請求都應該發送到 /blog 中的 index.php 文件

我目前的設置是:

http://example.com/index.php- 這個文件只是列印出“我們在虛擬主機的根目錄中”。該框架未安裝在那裡。

http://example.com/blog- 這工作正常

當我嘗試訪問時,http://example.com/blog/home我得到的是根index.php文件,而不是框架。我收到消息“我們在虛擬主機的根目錄中”。

我有以下.htaccess文件位於http://example.com/blog/.htaccess.

RewriteEngine on

Options Indexes FollowSymLinks -MultiViews

RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

任何幫助是極大的讚賞。

解決我的問題的答案是:

RewriteEngine On

Options Indexes FollowSymLinks

RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

Multiviews似乎把它扔掉了。

RewriteBase /blog

嘗試不使用正斜杠。

引用自:https://serverfault.com/questions/121614