tôi đã thực hiện một 1st cài đặt của Symfony2,Làm cách nào để loại bỏ nhu cầu "/app.php/" trong URL sản xuất của ứng dụng Symfony2 mới?
php app/console --version
Symfony version 2.0.11 - app/dev/debug
Tôi đã cài đặt nó dưới một DocumentRoot hiện bằng cách cấu hình máy chủ apache2 tôi vhost
<VirtualHost 127.0.0.1:80>
...
DocumentRoot /srv/www/localhost_www
...
<Directory "/srv/www/localhost_www" >
AllowOverride none
Options -ExecCGI +FollowSymLinks +Includes +Indexes +MultiViews
Order Allow,Deny
Allow from All
</Directory>
...
Alias /TESTAPP "/srv/www/TESTAPP/web/"
<Directory "/srv/www/TESTAPP/web/">
Options All
AllowOverride All
Allow from All
</Directory>
Alias /TESTAPP.symfony "/srv/www/TESTAPP/"
<Directory "/srv/www/TESTAPP/">
Options All
AllowOverride All
Allow from All
</Directory>
...
Sau một OK cài đặt, và thành công sau "The Book "để xây dựng bản demo 'Hello' ứng dụng, nếu tôi NAV trong một trình duyệt bất kỳ/tất cả,
dev:
http://localhost/TESTAPP.symfony/web/app_dev.php/hello/ME
http://localhost/TESTAPP/app_dev.php/hello/ME
prod:
http://localhost/TESTAPP.symfony/web/app.php/hello/ME
http://localhost/TESTAPP/app.php/hello/ME
tôi thấy mong đợi,
"Xin chào ME!"
Tôi muốn viết lại chỉ URL sản xuất, cất giấu "app.php" để các thiết lập sau đây của URL làm việc trong thanh nav của một trình duyệt cho ứng dụng Symfony2 tôi:
dev:
http://localhost/TESTAPP.symfony/web/app_dev.php/hello/ME
http://localhost/TESTAPP/app_dev.php/hello/ME
prod:
!! http://localhost/TESTAPP.symfony/web/hello/ME
!! http://localhost/TESTAPP/hello/ME
Iiuc , web mặc định/.htaccess
cat web/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
cần thay đổi.
Tôi đã đào xung quanh trong các tài liệu và trên web, cố gắng khuyến nghị vdiffferent cho modding các RewriteRule, thêm 'RedirectMatch vĩnh viễn', vv, và tôi không quản lý để có được một đơn giản
http://localhost/TESTAPP/hello/ME
để từng hoạt động. Tôi luôn có vẻ cần thêm "/app.php/".
Các thay đổi cụ thể mà tôi cần thực hiện để làm việc này là gì?
Cảm ơn.
@chasen
được mod_rewrite kích hoạt cho apache?
có
nếu bạn có tập tin .htaccess của bạn trong thư mục web của bạn
tôi làm
và bạn lưu trữ tập tin trỏ đến thư mục web
nó là, như trên,
Alias /TESTAPP "/srv/www/TESTAPP/web/"
<Directory "/srv/www/TESTAPP/web/">
app.php không nên cần thiết.
đó là vấn đề của tôi. không có nó, nó không làm việc cho tôi.
Cụ thể,
https://localhost/TESTAPP/app.php/hello/ME
lợi nhuận:
"Hello Me"
nhưng
https://localhost/TESTAPP/hello/ME
lợi nhuận
Object not found!
The requested URL was not found on this server.
If you entered the URL manually please check your
spelling and try again.
If you think this is a server error, please contact
the webmaster.
Error 404
xem trả lời ở trên trong OP –
Tôi đã cập nhật câu trả lời của mình với một nội dung mới để thử. – chasen
Vâng, đó là một trang symfony. Tôi đã nhiều lần xóa cả prod & dev cache, đảm bảo bộ nhớ cache của trình duyệt bị xóa, khởi động lại apache, thậm chí khởi động lại máy chủ - chỉ trong trường hợp. Theo báo cáo, URL không có app.php bao gồm thất bại. –