我的目录结构是这样,我的文档根目录是/
/
.htaccess
/public
全部都在我的本地xampp服务器上。 服务器设置为侦听mydomain.local,在我的主机文件中,我将mydomian.local指向了localhost。
我正在使用以下.htaccess代码,并且在将mydomain.local用作地址时可以正常工作。
我遇到的问题是,当我使用localhost / mydomain作为地址时,它不起作用
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ public/index.php?path=$1 [NC,L,QSA]
使用localhost / mydomain作为地址时如何使它工作?
这样做的原因是因为我试图注册服务人员,但是它们只能通过https或localhost运行。
预先感谢
答案 0 :(得分:1)
我修复了。
根文件夹.htaccess
RewriteEngine On
RewriteRule ^$ public/$1 [L]
RewriteRule ^(.*) public/$1 [L]
.htaccess公用文件夹
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?path=$1 [NC,L,QSA]
谢谢
答案 1 :(得分:1)
您也可以通过更改重写规则以在匹配项中添加可选的mydomain/
但不使用它,来在根目录保留单个.htaccess文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Add optional group
RewriteRule ^(mydomain/)?(.*)$ /public/index.php?path=$2 [NC,L,QSA]
# Same with a non capturing group
RewriteRule ^(?:mydomain/)?(.*)$ /public/index.php?path=$1 [NC,L,QSA]
顺便说一句,您可以使用htaccess tester来检查规则在url上的重写效果