バックグラウンド
私は、モバイル アプリケーションのニュース記事を管理できるクライアント向けのシンプルなコンテンツ管理システムに取り組んできました。現在、システムは、php バージョン 5 で LAMP を実行しているローカル開発サーバーで作成されました。
現在、私のクライアントは、ホスティング プロバイダーが提供する完全に異なるプラットフォーム (Zues Web サーバー) を使用しています (完全に異なると言うのは、これまでシステムについての予備知識がないためです。それほど違いはないかもしれませんが、私にとってはそう感じます)。その方法) システムをサーバーに移行する最初の試みの後、いくつかの問題に遭遇しました。最初の問題は、php バージョン 4 を実行している場所でした。
しかし、私が遭遇したもう 1 つの問題は、Zues がスクリプトを処理する方法です。Apache には、多数のことを実行できる .htaccess ファイルがあるため、Zues は、URL の書き換えなどに別のスクリプト ファイルを使用することを好むようです。
-
問題
したがって、私の問題は、いくつかのチュートリアルに従って、一連の .htaccess url-rewriting ルールを適切に書き直して、Zues で適切に動作する方法がわからないことです (Zues の適切な詳細なチュートリアルを見つけるのは難しいか、少なくとも私) 一部のページでは機能するがすべてではない基本的な rewrite.script があります。
私のアプリケーションには、動作しない 2 つの主要なセクションがあります。両方のセクションは、mysql クエリとフォーム内のいくつかの異なる要素を除いてほとんど同じです。そのため、1 つのニュース セクションについてのみ説明します。
ユーザーはニュース セクションをクリックして、表示したいページ番号を指定したかどうかを確認できます。/news/1/
ユーザーがアクセスしたい領域をクリックすると、ユーザーがニュースセクション、公開ニュースと未公開ニュースを表示したときに、URL が設定されるか、/news/published
またはnews/unpublished
次に、ページはこの値をセッション変数に設定し、ページを次のようにリセットします。/news/1/
そして、これは私の問題があるようです。ニュース内のどのページに移動しても、ページのURLが設定されているため、ページの正規表現に関係があると考えていますnews/1/
。その後、firefoxはエラーを返します:
Firefox has detected that the server is redirecting the request for this address in a way that will never complete.
だから私の主な推測は、それをリダイレクトするのではなく、それをページにリダイレクトすることです/news/create/
が、それでもApacheサーバーで正常にロードされ、Zuesでそのエラーが返される理由がわかりません。news_create.php
news_view.php
私が何を間違えたのか、それを修正するために何を変更する必要があるのか 誰かが知っていますか?
-
コード
元の .htaccess
#Enable URL rewriting.
RewriteEngine on
RewriteRule ^dashboard/?$ dashboard.php [L]
RewriteRule ^account/login/?$ account_login.php [L]
RewriteRule ^account/logout/?$ account_logout.php [L]
RewriteRule ^account/settings/?$ account_settings.php [L]
RewriteRule ^account/retrieve/?$ account_retrieve.php [L]
RewriteRule ^account/retrieve/([A-Z0-9_]+)/?$ account_retrieve.php?recovery_code=$1 [L]
RewriteRule ^news/?$ news_view.php [L]
RewriteRule ^news/create/?$ news_create.php [L]
RewriteRule ^news/modify/?$ news_modify.php [L]
RewriteRule ^news/modify/([0-9]+)/?$ news_modify.php?id=$1 [L]
RewriteRule ^news/delete/([0-9]+)/?$ news_view.php?delete=$1 [L]
RewriteRule ^news/([a-z]+)/?$ news_view.php?view=$1 [L]
RewriteRule ^news/([0-9]+)/?$ news_view.php?page=$1 [L]
RewriteRule ^information/?$ information_view.php [L]
RewriteRule ^information/create/?$ information_create.php [L]
RewriteRule ^information/categories/?$ information_categories.php [L]
RewriteRule ^information/modify/?$ information_modify.php [L]
RewriteRule ^information/modify/([0-9]+)/?$ information_modify.php?id=$1 [L]
RewriteRule ^information/delete/([0-9]+)/?$ information_view.php?delete=$1 [L]
RewriteRule ^information/([a-z]+)/?$ information_view.php?view=$1 [L]
RewriteRule ^information/([0-9]+)/?$ information_view.php?page=$1 [L]
RewriteRule ^json/get/([a-z]+)/?$ json_call.php?get_article_type=$1 [L]
新しい rewrite.script
match URL into $ with ^/dashboard/
if matched
set URL=/dashboard.php
goto END
endif
match URL into $ with ^/account/login/
if matched
set URL=/account_login.php
goto END
endif
match URL into $ with ^/account/logout/
if matched
set URL=/account_logout.php
goto END
endif
match URL into $ with ^/account/settings/
if matched
set URL=/account_settings.php
goto END
endif
match URL into $ with ^/account/retrieve/
if matched
set URL=/account_retrieve.php
goto END
endif
match URL into $ with ^/account/retrieve/([A-Z0-9_]+)/
if matched
set URL=/account_retrieve.php?recovery_code=$1
goto END
endif
match URL into $ with ^/news/
if matched
set URL=/news_view.php
goto END
endif
match URL into $ with ^/news/create/
if matched
set URL=/news_create.php
goto END
endif
match URL into $ with ^/news/modify/
if matched
set URL=/news_modify.php
goto END
endif
match URL into $ with ^/news/modify/([0-9]+)/
if matched
set URL=/news_modify.php?id=$1
goto END
endif
match URL into $ with ^/news/delete/([0-9]+)/
if matched
set URL=/news_view.php?delete=$1
goto END
endif
match URL into $ with ^/news/([a-z]+)/
if matched
set URL=/news_view.php?view=$1
goto END
endif
match URL into $ with ^/news/([0-9]+)/
if matched
set URL=/news_view.php?page=$1
goto END
endif
match URL into $ with ^/information/
if matched
set URL=/information_view.php
goto END
endif
match URL into $ with ^/information/create/
if matched
set URL=/information_create.php
goto END
endif
match URL into $ with ^/information/categories/
if matched
set URL=/information_categories.php
goto END
endif
match URL into $ with ^/information/modify/
if matched
set URL=/information_modify.php
goto END
endif
match URL into $ with ^/information/modify/([0-9]+)/
if matched
set URL=/information_modify.php?id=$1
goto END
endif
match URL into $ with ^/information/delete/([0-9]+)/
if matched
set URL=/information_view.php?delete=$1
goto END
endif
match URL into $ with ^/information/([a-z]+)/
if matched
set URL=/information_view.php?view=$1
goto END
endif
match URL into $ with ^/information/([0-9]+)/
if matched
set URL=/information_view.php?page=$1
goto END
endif
match URL into $ with ^/json/get/([a-z]+)/
if matched
set URL=/json_call.php?get_article_type=$1
goto END
endif
*news_view.php からの関連コード*
<?php
//Require the configuration file.
require('_configuration.php');
//Establish a database connection.
$connection->establish();
//Check that the user is logged in.
$account->check_login_state();
//Check what view is selected and assign a view.
if($_GET['view']) {
if($_GET['view'] == 'pending') {
$_SESSION[$G_instance_name]['view']['news'] = 'pending';
header('location: /news/');
die;
} else {
$_SESSION[$G_instance_name]['view']['news'] = 'published';
header('location: /news/');
die;
}
} else if(!isset($_SESSION[$G_instance_name]['view']['news']) or empty($_SESSION[$G_instance_name]['view']['news'])) {
$_SESSION[$G_instance_name]['view']['news'] = 'published';
header('location: /news/');
die;
}
//Check if the modify article is still set and unset it.
if(!empty($_SESSION[$G_instance_name]['modify']['news'])) {
unset($_SESSION[$G_instance_name]['modify']['news']);
}
//Check if the user has attempted to delete an article.
if(isset($_GET['delete'])) {
$operation->article->delete($_GET['delete']);
}
//Check if the user is on a page, if note set the page to 1 as default.
if(!isset($_GET['page']) or empty($_GET['page'])) {
header('location: /news/1/');
die;
}
//Get all news articles.
$news_article = $operation->pagition->gather_article_data('news');
?>
どんな助けでも大歓迎です。