symfony 1.4 のルーティングと環境またはモジュールに関して深刻な問題があるため、frontend 、mobile 、および backend の 3 つのモジュールを作成しました。
したがって、フロントエンドとモバイル モジュールでは、ほぼ同じルーティングを使用しています。
//apps/frontend/config/routing.yml
home:
url: /home
param: { module: user, action: home }
homepage:
url: /
param: { module: content, action: index }
....
default_index:
url: /:module
param: { action: index }
default:
url: /:module/:action/*
モバイルモジュール:
//apps/mobile/config/routing.yml
home:
url: /home
param: { module: user, action: home }
homepage:
url: /
param: { module: sfGuardAuth, action: signin }
....
default_index:
url: /:module
param: { action: index }
default:
url: /:module/:action/*
リンクを使用して自分のサイトにアクセスします
mysite.com/ ==> frontend module(frontend.php)
mysite.com/mobile.php ==> mobile module(mobile.php)
問題は、モバイル版にアクセスしてページを正しくログインしたときですが、ログイン後、モバイル モジュールのホームページではなく、フロントエンド モジュールのホームページにリダイレクトされますか?
述べる :
このリンクmysite.com/mobile_dev.php
を dev env で使用すると、モバイル バージョンは非常に正常に動作します。
編集 :
ここに私のhtaccessがあります:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC]
RewriteRule ^(.*) $1? [L]
</IfModule>
Options +FollowSymLinks +ExecCGI
<IfModule mod_rewrite.c>
RewriteEngine On
# uncomment the following line, if you are having trouble
# getting no_script_name to work
RewriteBase /
# we skip all files with .something
#RewriteCond %{REQUEST_URI} \..+$
#RewriteCond %{REQUEST_URI} !\.html$
#RewriteRule .* - [L]
# we check if the .html version is here (caching)
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
# no, so we redirect to our front web controller
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
そのため、リンクに変更index.php
すると、モバイル版のホームページに直接移動し、すべて正常に動作します...mobile.php
mysite.com/mobile.php
したがって、私の問題は、.htaccessを編集して次のようにリダイレクトする方法です。
mysite.com/index.php or mysite.com/ redirect me to my site
mysite.com/mobile.php redirect me to mobile version
編集2:
このリンクから開始すると、mysite.com/mobile.php
モバイルアプリにリダイレクトされてログインページにリダイレクトされますが、代わりにログイン後にホームページに移動すると、新しいリクエスト検索のデフォルトのフロントコントローラーが表示され、index.php がポイントされるため、ホームページが表示されますモバイルアプリではなく、フロントエンドアプリの
では、なぜ symfony はmobile_dev.php
常にmobile.php
モバイル開発環境にいて、最初のリダイレクトで prod mobile env から frontend prod env に切り替えるのでしょうか?