.htaccess godaddy-HTA访问条件不工作

.htaccess godaddy-HTA访问条件不工作,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我在本地主机上有一个mod rewrite,但在godaddy共享主机上没有 Options -Multiviews Options +FollowSymLinks RewriteEngine On RewriteCond %{DOCUMENT_ROOT}/WebShop/View/public%{REQUEST_URI} -f RewriteRule ^(.*)$ WebShop/View/public/$1 [L] RewriteRule ^(.*)$ entryPoint.php [Q

我在本地主机上有一个mod rewrite,但在godaddy共享主机上没有

Options -Multiviews
Options +FollowSymLinks
RewriteEngine On

RewriteCond %{DOCUMENT_ROOT}/WebShop/View/public%{REQUEST_URI} -f
RewriteRule ^(.*)$ WebShop/View/public/$1 [L]

RewriteRule ^(.*)$ entryPoint.php [QSA,L]
问题在于重写第二部分。在子文件夹中找不到现有文件。我尝试了绝对路径,相对路径,重写所有的东西,但它们都不起作用。Godaddy不授予对重写日志的访问权限。。。你知道怎么解决这个问题吗

编辑:

htaccess位于子文件夹中,文档根目录中有一个htaccess,它将请求按域拆分为子文件夹:

Options -Multiviews
Options +FollowSymLinks

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} ([^\.]+\.[^\.]+)$
RewriteRule ^(.*)$ %1/$1 [L,QSA]
真正的问题是,子文件夹的htaccess中的%{REQUEST_URI}也包含子文件夹的名称:S

Edit2:

好的,我有一个部分解决方案:

Options -Multiviews
Options +FollowSymLinks

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_URI} ^/([^/]+)/(.*)$
RewriteCond %{DOCUMENT_ROOT}/%1/WebShop/View/public/%2 -f
RewriteRule ^(.*)$ entryPoint.php?file=%2 [L]

RewriteRule ^(.*)$ entryPoint.php [QSA,L]
这会打印文件名(如果存在),但这是一个玩笑,因为如果我将第二条规则更改为

RewriteRule ^(.*)$ x.php [QSA,L]
然后,所有内容都转到x.php。我想知道为什么mod rewrite从不识别L标志


(去喝杯啤酒)

可能是因为某种奇怪的目录设置,但如果重定向到godaddy服务器上的子目录,则必须在RewriteEngine打开的情况下在那里创建一个空的.htaccess文件,否则它将无法工作。

edit2部分中前面的代码运行良好,但在godaddy服务器上不起作用。。。以下是它的文件访问版本:

Options -Multiviews
Options +FollowSymLinks

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_URI} ^/([^/]+)/(.*)$
RewriteCond %{DOCUMENT_ROOT}/%1/WebShop/View/public/%2 -f
RewriteRule ^(.*)$ WebShop/View/public/%2 [L]

RewriteRule ^(.*)$ entryPoint.php [QSA,L]
我在“WebShop/View/public”目录中放置了一个启用RewriteEngine的空.htaccess文件,修复了L标志问题