【发布时间】:2014-05-15 18:03:13
【问题描述】:
所以我有一个问题:我在 xampp 上有一个 Web 应用程序。
现在我的网址是:localhost/symfony/web/app_dev.php/inbox
但我希望它只是 localhost/inbox 例如。
那可能吗?我只知道使用 nginx 的方法,但不知道使用 xampp 或 symfony 路由的方法。
【问题讨论】:
所以我有一个问题:我在 xampp 上有一个 Web 应用程序。
现在我的网址是:localhost/symfony/web/app_dev.php/inbox
但我希望它只是 localhost/inbox 例如。
那可能吗?我只知道使用 nginx 的方法,但不知道使用 xampp 或 symfony 路由的方法。
【问题讨论】:
你必须编辑.htaccess
你可以使用这个并输入localhost/symfony/web:
DirectoryIndex app_dev.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app_dev\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
RewriteRule .? %{ENV:BASE}/app_dev.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
RedirectMatch 302 ^/$ /app_dev.php/
# RedirectTemp cannot be used instead
</IfModule>
</IfModule>
PS:您的 URL 应该是 localhost/symfony/inbox。然后,当您将其放在服务器上时,您会将所有文件放在根目录中,您的 URL 将是domain.com/inbox
希望这会有所帮助:)
【讨论】:
RewriteRule .? %{ENV:BASE}/web/app_dev.php [L]编辑RewriteRule .? %{ENV:BASE}/app_dev.php [L]
.htaccess放在localhost/symfony而不是localhost/symfony/web上
An error occurred while loading the web debug toolbar (404: Not Found). Do you want to open the profiler?
prod 环境,该环境将访问app.php不是app_dev.php,当你将项目放到网上时,你可能会使用linux,所以你必须在你的服务器上再次执行它,你可以在其中设置DocumentRoot /var/www/Symfony/web。之后,这个.htaccess 就可以正常工作了。如果您真的需要在本地环境中工作,请考虑该怎么做
编辑您的 Apache 配置文件以将 DocumentRoot 正确指向 web 文件夹:
DocumentRoot /var/www/Symfony/web
<Directory /var/www/Symfony/web>
... something goes here ...
</Directory>
【讨论】:
domain.com/app.php/inbox ;)
... something goes here ... ;)