我有一个国防部重写工作本地主机,但不是在godaddy共享主机。godaddy - htaccess条件不起作用
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]
问题在于RewriteCond部分。它无法在子文件夹中找到现有的文件。我尝试了绝对路径,相对路径,rewritebase的一切,但都没有奏效。 Godaddy不允许访问rewritelog ...任何想法如何解决这个问题?
编辑:
htaccess的是在一个子文件夹,并且在文档根是其将通过网络域的请求到子文件夹一个htaccess的:
Options -Multiviews
Options +FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} ([^\.]+\.[^\.]+)$
RewriteRule ^(.*)$ %1/$1 [L,QSA]
而真正的问题是,即在%{REQUEST_URI}中的子文件夹的htaccess的包含子文件夹的名称太: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。我想知道为什么国防部重写永远不会认出L旗?
(去喝啤酒)