mod の書き換えは localhost で機能していますが、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]
問題は RewriteCond 部分にあります。サブフォルダーに既存のファイルが見つかりません。絶対パス、相対パス、リライトベースのすべてを試しましたが、どちらも機能しませんでした。Godaddy は rewritelog へのアクセスを許可しません... この問題を解決する方法はありますか?
編集:
htaccess はサブフォルダーにあり、ドキュメント ルートには、要求をドメインごとにサブフォルダーに分割する htaccess があります。
Options -Multiviews
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ([^\.]+\.[^\.]+)$
RewriteRule ^(.*)$ %1/$1 [L,QSA]
そして本当の問題は、サブフォルダーの htaccess の %{REQUEST_URI} にもサブフォルダーの名前が含まれていることです:S
編集2:
わかりました私は部分的な解決策を持っています:
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]
存在する場合、これはファイル名を出力しますが、それは一種の冗談です.2番目のルールを次のように変更すると
RewriteRule ^(.*)$ x.php [QSA,L]
次に、すべてが x.php に移動します。mod rewrite が L フラグを認識しないのはなぜですか?
(ビールを飲みに行く)