gpt4 book ai didi

php - 更改 Apache 配置文件后的 Symfony 路由问题

转载 作者:行者123 更新时间:2023-12-05 07:08:58 26 4
gpt4 key购买 nike

我的 symfony 项目有问题,让我逐步解释我做了哪些更改。

  1. 我以前的工作项目:

我的旧项目的 URL 看起来像 http://127.0.0.1/my_project/something

httpd.conf 文件

Alias /my_project/something/auth /opt/www/my_project/auth
<Directory /opt/www/my_project/auth>
AllowOverride None
Require all Granted
</Directory>

Alias /my_project/something /opt/www/my_project/web
<Directory /opt/www/my_project/web>
AllowOverride None
Require all Granted

RewriteEngine On
RewriteBase /my_project/something

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\.(\d+)\.(bmp|css|cur|gif|ico|jpe?g|m?js|png|svgz?|webp|webmanifest|pdf)$ $1.$3 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [PT]
</Directory>

我的路由文件看起来像

routes.yml 文件

# routes.yml

get_data:
path: /api/select2/get-data
methods: [GET]
defaults:
_controller: 'my_folder\Controllers\IndexController::apiGetData'

项目在上述配置下运行良好。

  1. 我的新项目在我的更改后停止工作:

现在我想将 URL 更改为 http://127.0.0.1/my_project/something/MY-SLUG/

为此,我更改了我的 httpd.conf 文件

httpd.conf

Alias /my_project/something/auth /opt/www/my_project/auth
<Directory /opt/www/my_project/auth>
AllowOverride None
Require all granted
</Directory>

Alias /my_project/something /opt/www/my_project/web
<Directory /opt/www/my_project/web>
AllowOverride None
Require all granted
DirectorySlash Off

RewriteEngine On
RewriteBase /my_project/something/
RewriteOptions AllowNoSlash

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[^.]+[^\/]$ $0\/ [R]

RewriteCond %{QUERY_STRING} !slug=
RewriteRule ^([a-zA-Z0-9\-]+)/(.*)$ $2?slug=$1 [L,QSA]
RewriteRule ^([a-zA-Z0-9\-]+)$ ?slug=$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\.(\d+)\.(bmp|css|cur|gif|ico|jpe?g|m?js|png|svgz?|webp|webmanifest|pdf)$ $1.$3 [L]
</Directory>

我没有更改我的route.yml 文件,

我想在 session 中设置 MY-SLUG,然后在我的项目中的任何地方使用它,但是在更改它之后我无法访问我的 Symfony 项目的任何路由。我不希望我的 httpd.conf 文件中的更改影响我的项目,我只想要来自 URL 的 MY-SLUG。

有什么解决办法吗?

最佳答案

我觉得你没看懂

RewriteCond %{REQUEST_FILENAME} !-f

重写规则 ^(.*)$ app.php [PT]

路由不起作用的原因是你的第二个配置没有指向 Symfony 的入口文件 app.php

关于php - 更改 Apache 配置文件后的 Symfony 路由问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61777480/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com