我想从网址中隐藏“index.php”,但它根本不起作用。我通过谷歌,堆栈尝试了很多东西,但它根本没有帮助我。我在.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>
非常感谢任何帮助。
答案 0 :(得分:1)
Probles在你的symfony配置中。 所有apache配置文件都可以。
您需要在全局security.yml
中添加此项default:
is_secure: false
is_ssl: true
sfGuardAuth /配置/ 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
中答案 1 :(得分:0)
网站是否在没有index.php和http(不是https)的情况下工作?
如果网站没有使用https的http工作,问题可能出在symfony部分。你能告诉我们你的apps/[your apps]/config/settings.yml
吗?特别寻找选项no_script_name
:
no_script_name
设置决定了前控制器 脚本名称是否预先添加到生成的URL中。默认情况下,它是 对true
环境的generate:app
任务设置为prod
第一个应用程序创建。