Php 重定向所有uri';可能需要使用htaccess编写脚本

Php 重定向所有uri';可能需要使用htaccess编写脚本,php,apache,.htaccess,redirect,Php,Apache,.htaccess,Redirect,我正在尝试设计一个小型站点,其中大部分(95%)的站点资产将通过主类PHP脚本传递,剩下的5%由子域托管(背景图像、徽标等。我希望无论何时调用页面,比如说www.example.com/blog/My_trip\u to_the_andes调用的页面都是 htdocs/nexus.php该脚本将能够发现请求的URI。从该URI中,脚本将确定用户请求的内容并生成它。当重定向发生时,需要维护标题,因此脚本将接收任何POST数据或COOKIE数据 我相信我可以通过在站点根目录中使用.htaccess来

我正在尝试设计一个小型站点,其中大部分(95%)的站点资产将通过主类PHP脚本传递,剩下的5%由子域托管(背景图像、徽标等。我希望无论何时调用页面,比如说
www.example.com/blog/My_trip\u to_the_andes
调用的页面都是
htdocs/nexus.php
该脚本将能够发现请求的URI。从该URI中,脚本将确定用户请求的内容并生成它。当重定向发生时,需要维护标题,因此脚本将接收任何POST数据或COOKIE数据

我相信我可以通过在站点根目录中使用.htaccess来实现这一点。但是我对.htaccess几乎没有经验,而且似乎没有提到这一点

这是一个好主意吗?我希望每个页面请求都经过一个脚本,这样我就可以登录,进行404跟踪和重定向,保持对资源的跨站点请求,以及我甚至想都不敢想的东西。

.htaccess-

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /htdocs/nexus.php [L]
</IfModule>

重新启动发动机
重写基/
重写cond%{REQUEST_FILENAME}!-f
重写cond%{REQUEST_FILENAME}!-d
重写规则。/htdocs/nexus.php[L]

而实际调用的文件名应该作为
$\u SERVER['REQUEST\u URI']

提供,因为您的静态资源驻留在不同的域上,所以您可以使用以下规则将所有请求发送到您的nexus.php文件:

然后,原始请求的URL在
$\u服务器['REQUEST\u URI']
中可用(请注意,这还包含URL查询,而不仅仅是URL路径)

但是,如果您有其他要允许访问的文件,则可以将其排除在外,并将此附加条件附加到上一条规则中:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^nexus\.php$ nexus.php [L]

现在,只有无法直接映射到现有文件(
!-f
)的请求才会被重写到nexus.php。

您尝试过mod_rewrite吗?但是$\u SERVER['REQUEST_URI']不包括请求的整个URI。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^nexus\.php$ nexus.php [L]