php - PHP 和使用 apache2.conf 重定向
问题描述
我有一个内部域
live.domain.com
我在 sites-available 中定义的像这样
ServerName live.domain.com
ServerAdmin webmaster@localhost
DocumentRoot /data/www/html/mydomainnamenodots
<Directory /data/www/html/mydomainnamenodots>
Require all granted
</Directory>
SSL conf 也是如此。
我确实有一个文件夹/api在那里像 /data/www/html/mydomainnamenodots/api
我想要的是抓住所有的电话
live.domain.com/api/*
并将它们重定向到类似的东西
live.domain.com/api/index.php?url=*
所以一个真实的例子是
live.domain.com/api/statistics/getFTE/123/456
我希望这样
live.domain.com/api/index.php?url=/statistics/getFTE/123/456
这将导致 index.php 中的 $_REQUEST 像这样
array(1) {["url"]=>string(33) "/statistics/getFTE/123/456"}
mod_rewrite 已启用并加载。使用文件到文件重定向的简单测试有效。
我的重写规则不起作用,因为它不重定向是
<Directory "/data/www/html/mydomainnamenodots/api">
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*?mydomainnamenodots\/api(.*)$ /mydomainnamenodots/api/index.php?url=$1 [QSA,L]
</Directory>
任何想法为什么这不起作用?我错过了 RewriteBase 还是什么?
提前致谢
亚历克斯
解决方案
由于子域已经指向一个子文件夹,因此它必须是目录定义中该子文件夹下的相应子文件夹。此外,我也更改了正则表达式。
这对我有用:
<Directory />
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*\/api(\/.*)$ /api/index.php?url=\/$1 [QSA,L]
</Directory>
推荐阅读
- swift - 重构故事板错误命令 LinkStoryboards 失败,退出代码为非零
- python - 机器人元指令阻止网络抓取
- c - 对 AND 位掩码感到困惑
- python - 自动将 SQL 查询转换为 python 代码
- excel - 图片类的粘贴/剪切方法在excel vb.net中失败
- jmeter - 为用户随机化用户名和相关的作业 ID
- reactjs - 将 react 与 django 集成
- c# - WPF:当 CollectionChanges 时绑定中断 - 为什么?
- laravel - 如何解决 Laravel + Nuxt.js 中的 CORS 错误
- c# - 什么是 Quaternion ,以及如何统一使用 Quaternion lerp?