我有一個國防部重寫工作本地主機,但不是在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旗?
(去喝啤酒)