如何使用Nginx中的路径变量(从Apache切换)将所有目录重定向到根目录?
我在Apache中运行以下程序。我们的IT人员推荐使用Nginx而不是Apache来优化web流量。但是modrewrite在Nginx上的工作方式不同 本质上,我感兴趣的是将tld之后的所有信息转换为路径变量: 所以domain.com/abc/def/重定向到domain.com/index.php/abc/def/ 你能帮我在Nginx做这个吗?以下内容允许在Apache中执行此操作如何使用Nginx中的路径变量(从Apache切换)将所有目录重定向到根目录?,apache,http,.htaccess,mod-rewrite,nginx,Apache,Http,.htaccess,Mod Rewrite,Nginx,我在Apache中运行以下程序。我们的IT人员推荐使用Nginx而不是Apache来优化web流量。但是modrewrite在Nginx上的工作方式不同 本质上,我感兴趣的是将tld之后的所有信息转换为路径变量: 所以domain.com/abc/def/重定向到domain.com/index.php/abc/def/ 你能帮我在Nginx做这个吗?以下内容允许在Apache中执行此操作 <IfModule mod_rewrite.c> Options +FollowSym
<IfModule mod_rewrite.c>
Options +FollowSymLinks -MultiViews
RewriteEngine On
# The following redirects all directories to root using PATH variables
# Ex. /abc/def/ redirects to /index.php/abc/def/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/$1 [L]
</IfModule>
选项+以下符号链接-多视图
重新启动发动机
#下面使用路径变量将所有目录重定向到根目录
#例如/abc/def/重定向到/index.php/abc/def/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则(.*)index.php/$1[L]
谢谢。试着把它放在
服务器{}
块的位置/{}
块中:
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
实现这一目标的最佳方法是:
server {
try_files $uri $uri/ /index.php/$uri;
....
您可以在此处阅读有关此指令的更多信息-