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
元のリクエストURIが何であるかを教えてください。残りのルールも投稿できますか? – muffinista
http://www.domain.com/newsは私が要求しているURIであり、技術的には/Pages/news.phpに書き換えてください。 –
また、.htaccessを含むすべてのファイルが/ newsサブフォルダにあることにも言及してください。 –