【发布时间】:2018-06-22 19:09:54
【问题描述】:
我有一个简单的结构:
Root
|-- [app] (Symfony Application)
| |-- [app]
| |-- [bin]
| |-- [src]
| |-- [vendor]
| |-- [web]
| |-- .htaccess (Symfony htaccess)
|
|-- [wp-admin]
|-- [wp-content]
|-- [wp-include]
|-- .htaccess (Root htaccess)
我需要以下映射:
http://example.com ==> Wordpress
http://example.com/app ==> Symfony Application
这就是我所拥有的:
根 htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^app(.*)$ app/web/$1 [L,QSA]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Symfony htaccess:
DirectoryIndex app.php
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteCond %{HTTP:Authorization} .
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^ %{ENV:BASE}/app.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
RedirectMatch 302 ^/$ /app.php/
</IfModule>
</IfModule>
问题:
问题是,Symfony 路由没有解决:
找不到“GET /”的路由
有什么简单的解决办法吗?
【问题讨论】:
-
您可以更改的内容是否有任何限制?例如,如果网络托管服务提供商不给您 SSH 访问权限或不允许更改底层 Apache 配置或模块,或者您不能更改项目的目录结构?
-
我没有 shell 访问权限。我在 url 中有一个带有
/web的解决方案,但我想用一个简单的解决方案来摆脱它。我不想破坏 Symfony 的目录结构 -
如果您至少有某种管理工具,您也许可以将子域指向 web 文件夹?
标签: wordpress .htaccess symfony url-rewriting