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
中执行此操作,我只是想通过该文件推送所有请求。
答案 0 :(得分:1)
您可以使用:
RewriteEngine on
RewriteCond %{REQUEST_URI} !(\.|/$)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
RewriteRule ^((?!api\.php$).*)$ api.php?url=$1 [L,QSA,NC]
Lookahead (?!api\.php$)
表示使用查询参数/api.php
将/api.php
以外的所有内容重写为url
。
答案 1 :(得分:0)
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