Php 配置htaccess目录索引文件

Php 配置htaccess目录索引文件,php,.htaccess,directoryindex,Php,.htaccess,Directoryindex,场景: 我创建了这个htacces文件来重定向子域。到目前为止,它是有效的 <IfModule mod_rewrite.c> Options +FollowSymLinks Options +Indexes RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteCond %{HTTP_HOST} ^(.*)\.example\.net$ [NC] RewriteRule ^(.*)

场景: 我创建了这个htacces文件来重定向子域。到目前为止,它是有效的

<IfModule mod_rewrite.c>
Options +FollowSymLinks
Options +Indexes

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.example\.net$ [NC]
RewriteRule ^(.*) http://example.net/%1/$1 [P,NC,QSA]
</IfModule>
但只有第一个参数被接受,第二个参数被忽略(为什么?)。好吧,只要其中一个存在,它就应该接受它。

试试这个: 我复制这个,然后正确地工作

<IfModule mod_rewrite.c>

    RewriteEngine on

    RewriteRule    ^$    public/    [L]

    RewriteRule    (.*) public/$1    [L]

</IfModule>

重新启动发动机
重写规则^$public/[L]
重写规则(.*)public/$1[L]

您应该将“public”更改为您的文件夹。

否。这会引发
错误请求
从directoryindex中删除[L],因为这是无效的,如果第一个参数存在,directoryindex将始终使用第一个参数。如果两者都在同一个目录中,它将始终使用第一个目录。它只是按照列表中的顺序来检查它是否存在。它不起作用。它只计算第一个参数,而忽略第二个参数。例如,包含index.php的目录将抛出404。在HTML或PHP中,每个目录只有一个索引。
<IfModule mod_rewrite.c>

    RewriteEngine on

    RewriteRule    ^$    public/    [L]

    RewriteRule    (.*) public/$1    [L]

</IfModule>