.htaccess 重定向在本地主机上不起作用
.htaccess redirects not working on localhost
我有以下 .htaccess
应该为 所有请求 打开 /index.php
,无论请求的文件夹或文件是否存在:
RewriteEngine On
RewriteRule . index.php [END]
不幸的是,这在我的本地主机上不起作用:
http://localhost:9000/file
-> 打开 /index.php
(好)
http://localhost:9000/folder/file
-> 如果 /folder/
不存在则打开 /index.php
(GOOD)
http://localhost:9000/folder/file
-> “未找到”如果 /folder/
存在(错误)
http://localhost:9000/file.php
-> 如果文件存在则打开文件,如果不存在则给出“未找到”(错误)
http://localhost:9000/folder/file.php
-> 如果文件存在则打开文件,如果文件不存在则给出“未找到”(错误)
我的本地主机在 macOS 上是 运行,通过终端中的 php -S localhost:9000
。
根据问题的评论,我了解到您没有为此使用 apache http 服务器,而是依赖 php 本身内置的 http 服务器 (php -S localhost:9000
)。
请注意,“.htaccess”样式文件是 apache 配置文件。我怀疑内置服务器是否知道这些文件的用途...
相反,内置服务器提供了通过路由器脚本路由所有请求的功能:
php -S localhost:9000 index.php
这记录在 https://www.php.net/manual/en/features.commandline.webserver.php
中的“示例 #3 使用路由器脚本”下
我有以下 .htaccess
应该为 所有请求 打开 /index.php
,无论请求的文件夹或文件是否存在:
RewriteEngine On
RewriteRule . index.php [END]
不幸的是,这在我的本地主机上不起作用:
http://localhost:9000/file
-> 打开/index.php
(好)http://localhost:9000/folder/file
-> 如果/folder/
不存在则打开/index.php
(GOOD)http://localhost:9000/folder/file
-> “未找到”如果/folder/
存在(错误)http://localhost:9000/file.php
-> 如果文件存在则打开文件,如果不存在则给出“未找到”(错误)http://localhost:9000/folder/file.php
-> 如果文件存在则打开文件,如果文件不存在则给出“未找到”(错误)
我的本地主机在 macOS 上是 运行,通过终端中的 php -S localhost:9000
。
根据问题的评论,我了解到您没有为此使用 apache http 服务器,而是依赖 php 本身内置的 http 服务器 (php -S localhost:9000
)。
请注意,“.htaccess”样式文件是 apache 配置文件。我怀疑内置服务器是否知道这些文件的用途...
相反,内置服务器提供了通过路由器脚本路由所有请求的功能:
php -S localhost:9000 index.php
这记录在 https://www.php.net/manual/en/features.commandline.webserver.php
中的“示例 #3 使用路由器脚本”下