我有一个名为client
的symfony 1.4应用程序,其模块为device
。以下是此应用程序中使用的routing.yml
文件的一部分:
device_detail:
url: /device/:device_name
param: { module: device, action: show }
device_manage:
url: /manage/:device_name
param: { module: device, action: manage }
我可以毫无问题地加载页面http://example.com/client/device/jdoe
。此页面包含使用link_to
帮助程序生成的链接。例如,
link_to("Manage this device", "manage/{$device_name}")
生成网址http://example.com/client.php/manage/jdoe
。
我的问题是:为什么link_to
助手会生成包含字符串client.php
的网址,而不仅仅是client
?页面地址使用client
但link_to
更改为client.php
似乎很奇怪。
答案 0 :(得分:2)
检查settings.yml
中应用程序的apps/<YOURAPP>/config/settings.yml
文件,并相应地针对相应环境调整no_script_name
配置标志。之后清除缓存。通常,您的开发模式会将no_script_name
设置为false
,并且您的制作会将其设置为true
。
示例:
prod:
.settings:
no_script_name: true
dev:
.settings:
no_script_name: false
编辑:正如dxb指出的那样,这也仅适用于项目中的单个应用程序。如果您希望在同一项目中使用多个应用,则需要在路由中应用前缀(例如/admin
),使用不同的域/子域或类似解决方案。
答案 1 :(得分:0)
您可以在settings.yml中设置参数,以删除网址的应用名称
PROD:
.settings
no_script_name:off
这仅适用于项目中的一个应用。
答案 2 :(得分:0)
确保您已准备好HTACCESS并在Apache
中启用了mod_rewite