2017-01-13 5 views
0

新しいサーバーに移行して以来、一部のページが壊れています(404)。理由は2つの書き換え規則が壊れているということです。 本当に奇妙なのは、フォルダの名前を変更しても機能するということです。例えば この作品:フォルダ名が "myfolder /"に設定されているとRewriteRuleが一致しません

RewriteRule ^anything/([a-zA-Z0-9-]+)/$ page.php?var=$1 [L] 

これにはない:

RewriteRule ^myfolder/([a-zA-Z0-9-]+)/$ page.php?var=$1 [L] 

私のオリジナル「myfolderなど/」仮想フォルダが一致したことがないので、私も、301リダイレクトを行うためのトリックを見つけることができません。

何が起こっているのですか?私はそれがルールオーバーライドなのかそれとも(マルチドムソリューションでホストされているような)ものかもしれないと思っていましたが、ルートのメインサイトにそのようなルールはありません。それは私を夢中にさせる。 Thx!

答えて

2

実際には2つのことをしたいと思うでしょう。要求が実ディレクトリの場合は、マルチビューを無効にし、ルールをバイパスします。

Options -MultiViews #turn off automatic URI matching, can cause weirdness 
RewriteEngine on 

#stop here if the request is a real file or directory 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule^- [L] 

RewriteRule ^myfolder/([a-zA-Z0-9-]+)/?$ /page.php?var=$1 [L] 
+1

あなたは私のヒーローです。ありがとうございます! – SuN