2

URLから「index.php」を非表示にしたいのですが、まったく機能しません。Google、スタックで多くのことを試しましたが、まったく役に立ちませんでした。.htaccess ファイルで次のルールを指定しています。また、「https://www.domain.com/index.php/login」を使用して URL にアクセスすると正常に動作しますが、「https://www.domain.com/login」を使用してサイトにアクセスすると表示されます404 ページ (ページが見つかりません)。何かが欠けているかどうかはわかりません。[注: 私は symfony 1.4 を使用しています。また、http: //www.symfony-project.org/plugins/lapeSSLFilterPlugin のようなフィルターを使用してssl を処理しようとしましたが、機能しません。SSL のエラー ログも確認しましたが、関連するエラーがログに記録されていません。]

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
   RewriteCond %{SERVER_PORT} !^443$
   RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI}        [R=301,L]
   RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

ssl.conf ファイルには、以下の全体が含まれています。

LoadModule ssl_module modules/mod_ssl.so
Listen 443

<VirtualHost _default_:443>
  DocumentRoot /var/www/html/domain/web
  ServerName www.domain.com
  RewriteEngine On
  DirectoryIndex index.php
  Alias /sf /var/www/html/domain/lib/vendor/symfony/data/web/sf
  <Directory "/var/www/html/domain/lib/vendor/symfony/data/web/sf">
      AllowOverride All
      Allow from All
  </Directory>
  <Directory "/var/www/html/domain/web">
      AllowOverride All
      Allow from All
  </Directory>

  ErrorLog logs/ssl_error_log
  TransferLog logs/ssl_access_log
  LogLevel warn

  SSLEngine on
  SSLCertificateFile /etc/ssl/certs/domain.com.crt
  SSLCertificateKeyFile /etc/ssl/certs/domain.key
  SSLCertificateChainFile /etc/ssl/certs/gd_bundle.crt
  SSLCACertificateFile /etc/ssl/certs/gd_bundle.crt
</VirtualHost>

httpd.conf ファイルには、次の vhost 設定が含まれています。

<VirtualHost *:80>
   ServerName www.domain.com
   DocumentRoot "/var/www/html/domain/web"
   DirectoryIndex index.php
   RewriteEngine On
   <Directory "/var/www/html/domain/web">
     AllowOverride All
     Allow from All
   </Directory>
   Alias /sf /var/www/html/domain/lib/vendor/symfony/data/web/sf
   <Directory "/var/www/html/domain/lib/vendor/symfony/data/web/sf">
      AllowOverride All
      Allow from All
   </Directory>
</VirtualHost>

どんな助けでも大歓迎です。

4

2 に答える 2

1

問題はsymfonyの設定にあります。すべての apache 構成ファイルは問題ありません。

これを global security.yml に追加する必要があります

default:
  is_secure: false
  is_ssl: true

sfGuardAuth/config/security.yml

secure:
  is_secure: false
  is_ssl: true

signin:
  is_secure: false
  is_ssl: true

signout:
  is_secure: false

また、URL セットに「index.php」が必要ない場合

no_script_name:         true

グローバル アプリの settings.yml で

于 2012-05-14T13:43:57.593 に答える
0

サイトは index.php と http (https ではない) なしで動作しますか?

サイトが https なしで http で機能しない場合、問題は symfony の部分にある可能性があります。あなたの を見せていただけますapps/[your apps]/config/settings.ymlか?オプションの特定の外観no_script_name:

このno_script_name設定は、生成された URL の先頭にフロント コントローラーのスクリプト名を追加するかどうかを決定します。デフォルトでは、最初に作成されたアプリケーションの環境に対してタスクtrueによって設定されます。generate:appprod

于 2012-05-14T11:58:08.017 に答える