htaccess - 通过 php 文件重定向所有内容


RewriteEngine on
RewriteCond %{REQUEST_URI} !(.|/$)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ api.php?url=$1 [L]

上面显示了我当前的配置。

这样做的问题是,如果 htaccess 文件所在的文件夹之后存在目录或文件,它似乎只会重定向。

我如何重写它,以便它实际上只是将每个请求重定向到具有完整请求路径的api.php?我不是在查看htaccess文件中是否存在目录或文件,我可以在api.php中执行此操作,我只想通过该文件推送所有请求。

您可以使用:

RewriteEngine on
RewriteCond %{REQUEST_URI} !(.|/$)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
RewriteRule ^((?!api.php$).*)$ api.php?url=$1 [L,QSA,NC]

展望(?!api.php$)意味着重写除/api.php之外的所有内容,以使用查询参数url进行/api.php

像这样:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*)$ /api.php?path=$1 [NC,L,QSA]

确保在路线之前有这个

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

最新更新