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