0

私は多くのサイトにサービスを提供するアプリを持っており、Apachemod-rewriteを使用して次のようなURLをマッピングしています

http://site1.net/controller
http://site2.net/controller2/another_view
http://site3.net/
http://special_case.net/

マップ先:

index.php?url=http://site1.net/controller
index.php?url=http://site2.net/controller2/another_view
index.php?url=http://site3.net/
index.php?url=http://special_case.net/hub

私の書き換えルールは次のとおりです。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

これは、特定のドメインを処理するときに「ハブ」と呼ばれるコントローラーの使用を強制する必要がある特別な最後のケースを除いて、すべてのケースを処理します。私はこのプロジェクトで他の人と協力しています。つまり、インデックスファイルが呼び出されると、ルーティングについて何もできなくなります。

上記のすべてのケースが解決するように誰かが私のルールを修正できますか?

4

2 に答える 2

1

現在のルールでは、ホスト名をurlget-parameterに追加していないようです。だから私はそれを以下に追加しました:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteCond %{HTTP_HOST} ^(special_case\.net)$
RewriteRule ^(.*)$ index.php?url=http://%1/hub/$1 [QSA,L]

RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)$ index.php?url=http://%1/$1 [QSA,L]
于 2012-05-21T18:31:13.840 に答える
-1
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^http://special_case.net index.php?url=http://special_case.net/hub [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
于 2012-05-21T18:03:02.533 に答える