Jef*_*opo 14 .htaccess mod-rewrite shared-hosting symfony
我想从这个网址http://www.sample.com/amateur1访问生产环境中的symfony应用程序(http://www.sample.com/amateur1/web/app.php).
为此,我将.htacces文件移动到http://www.sample.com/amateur1/.htaccess,内容如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /web/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
但是当我去http://www.sample.com/amateur1时显示404错误,并且没有写prod.log.
我也使用过,RewriteBase /amateur1/web/因为我不知道如果RewriteBase路径是相对于服务器的DocumentRoot,还是来自.htaccess文件所在的路径.也试过/amateur1和/amateur1/RewriteBase因为这个答案Symfony2:如何在子目录中部署(Apache)
通过三次尝试,"例外"页面显示为无样式,并且未加载任何图像.但是后来我在prod.log文件中收到以下错误:
[2013-02-15 02:06:47] request.ERROR: Symfony\Component\HttpKernel\Exception\NotFoundHttpException: No route found for "GET /amateur1/" (uncaught exception) at /home/u105859802/public_html/amateur1/app/cache/prod/classes.php line 5121 [] []
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
Jul*_*lin 24
在您的配置中,apache public_html用作文档根目录
如果Symfony2安装在目录中/home/u105859802/public_html/amateur1,则要提供的Symfony公共目录是/home/u105859802/public_html/amateur1/web/
你应该用
RewriteBase /amateur1/web/
Run Code Online (Sandbox Code Playgroud)
但要注意,它不安全
你必须保护你的symfony目录!(配置可访问)
为什么不尝试在私有区域中移动symfony文件?
您可以将Symfony Web目录重命名为public_html
所以,我的推荐结构如下所示:
| 归档时间: |
|
| 查看次数: |
18231 次 |
| 最近记录: |