重写子目录中的规则

Rewrite rule in subdirectory

重写规则不适用于子目录中的远程主机。

在生产阶段,我有这个目录 http://localhost/prj/。我对没有扩展名的 "hide" 和 "load" PHP 文件使用了 RewriteRule。这是我用过的.htaccess
Options +FollowSymLinks RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ .php

所以,效果很好,我已经开发了这个项目,我想将它上传到我的 VPS 以供远程使用等。问题是,该项目仍处于测试阶段,我没有将其保存在根目录 ATM 中,而是保存在子目录 /beta/ 中,所以现在,我的 URL 现在是这样的:http://example.com/beta/ .

然而,当我尝试访问 URL 时,index.php 会自动加载,但是当我以 http://example.com/beta/play 访问例如文件 play.php 时,它不会工作,但它在项目投入生产时有效。

这是我试过的:

示例:

Options All -Indexes -MultiViews
RewriteEngine on
RewriteBase /beta/
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ .php [L,QSA]  



Options All -Indexes -MultiViews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^/beta/(.*)$ .php [L,QSA]

返回的错误是 404 Not found。
编辑:我应该在里面 apache2.conf?

/beta/.htaccess 试试这个:

Options All -Indexes -MultiViews
RewriteEngine on
RewriteBase /beta/

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/beta/\.php -f [NC] 
RewriteRule ^(.+?)/?$ .php [L]