2011-07-25 4 views
0

OK、プログラミングのファイル構造のためにいくつかのサイトで使用する特定の書き換えセットがあります。それまではこれまでに問題になったことはありません。例えばApache mod_rewritingにファイルが見つからない

、リライト:

RewriteRule ^$ Pages/news.php 

代わりに、それは/path/to/file/public/wedding-venues-and-caterers-news/Pages/news.phpにリダイレクトされ、それは404-ING(/path/to/fileが実際のパスである)いhttp://www.domain.com/wedding-venues-and-caterers-news/Pages/news.phpに向けます。

誰かがこれがどうして起こっているのか、私が正しい方向に向いているかどうかを知ることができれば、永遠に感謝しています。

私はすべてのスクリプトとファイルをサブフォルダで実行していますが、下に編集したルートフォルダに別の.htaccessファイルがありますが、干渉する可能性のあるものは含まれていないようです。

サーバーに関する追加情報が必要な場合は、教えてください。


EDIT - ここで私の書き換えはすべて要求通りです。

Options +FollowSymLinks 
Options +Indexes 
RewriteEngine On 
RewriteRule ^$ Pages/news.php 
RewriteRule ^images/([0-9]+)/([0-9]+)/(0|1)/(.*).jpg?$ Classes/Image/timthumb.php?src=http://www.domain.com/wedding-venues-and-caterers-news/images/$4.jpg&h=$1&w=$2&zc=$3 
RewriteRule ^([A-Za-z0-9\-]+)/([0-9]+)/([0-9]+)(/)?$ Pages/archives.php?cat_id=$2&page=$3 [NC,L] 
RewriteRule ^archives/mon/([0-9]+)/yr/([0-9]+)/([0-9]+)$ Pages/archives.php?mon=$1&yr=$2&page=$3 [NC,L] 
RewriteRule ^([A-Za-z0-9\-]+)/([0-9]+)(/)?$ Pages/archives.php?cat_id=$2 [NC,L] 
RewriteRule ^archives/mon/([0-9]+)/yr/([0-9]+)(/)?$ Pages/archives.php?mon=$1&yr=$2 [NC,L] 
RewriteRule ^([A-Za-z0-9\-]+)/([A-Za-z0-9\-]+)/([0-9]+)(/)?$ Pages/article.php?art_id=$3 [NC,L] 
RewriteRule ^wedding-venues-catering-rss(/)?$ rss/rss.php [NC,L] 
RewriteRule ^Page-Error(/)?$ Pages/errorPage.php [NC,L] 
ErrorDocument 404 http://www.domain.com/wedding-venues-and-caterers-news/Page-Error 
ErrorDocument 401 http://www.domain.com/wedding-venues-and-caterers-news/Page-Error 
ErrorDocument 403 http://www.domain.com/wedding-venues-and-caterers-news/Page-Error 
ErrorDocument 404 http://www.domain.com/wedding-venues-and-caterers-news/Page-Error 
ErrorDocument 500 http://www.domain.com/wedding-venues-and-caterers-news/Page-Error 

また、私は、これは当然のことながら働いていた、絶対URLの書き換えとを参照しようとしましたが、彼らは単にリダイレクトの代わりに、ご想像のとおり書き換えました。


EDIT - これは、既存のサイトの一部であるルートディレクトリ内の他の.htaccessファイルです。

#Options +FollowSymlinks 
RewriteEngine on 
rewritecond %{http_host} ^domain.com [nc] 
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc] 

<IfModule mod_rewrite.c> 
RewriteEngine on 
redirect 301 /Cavendish.htm http://www.domain.com/ 
redirect 301 /grange.htm http://www.domain.com/ 
redirect 301 /restaurant/index.html http://www.domain.com/ 
redirect 301 /news/Save-money-by-booking-wedding-venues-in-Middlesex-at-off-peak-times.asp http://www.domain.com/ 
redirect 301 /news/default.asp http://www.domain.com/ 


EDIT - 私はこれは、関連するかもしれないと思いました。

書き換えに404エラーがこのパスを示し -

/l/i/domain.com/public/wedding-venues-and-caterers-news/Pages/news.php 

しかし..私はnews.phpと要求SCRIPT_FILENAMEを編集した場合、それは私のパスを提供します。..

/services/webpages/l/i/domain.com/public/wedding-venues-and-caterers-news/Pages/news.php 

私の推測があります何かがデフォルトのパスに影響していることを示します。

は、さらに私は、ルートレベルでの基本的な書き換えを試してみましたが、これらはまた、404

+0

元のリクエストURIが何であるかを教えてください。残りのルールも投稿できますか? – muffinista

+0

http://www.domain.com/newsは私が要求しているURIであり、技術的には/Pages/news.phpに書き換えてください。 –

+0

また、.htaccessを含むすべてのファイルが/ newsサブフォルダにあることにも言及してください。 –

答えて

0

最後の問題は解決されています。

サーバがBT Businessとホストされているので、私は彼らに電子メールを送り、彼らが役に立っているかどうかを確認することにしました。

男は、サーバーにログインして.htaccessを変更したと言って、今すぐ正常に動作します。

彼は単純に、書き換えられたURLの前にサブフォルダを追加しました。

IE: -

RewriteRule ^$ Pages/news.php 

になった: -

RewriteRule ^$ wedding-venues-and-caterers-news/Pages/news.php 

.htaccessファイルは、そのディレクトリ内にあるときのサブディレクトリが必要な理由私はまだわからないよ、私の推測では、それがに何かですサーバーの設定を行う。

関連する問題