nginx配置url重写与apache配置url重写

apache配置url重写
LoadModule rewrite_module modules/mod_rewrite.so将前面的注释去掉
修改httpd.conf, 把AllowOverride none改为Allowoverride FileInfo或者Allowoverride All, 使Apache能够读取.htaccess的内容(注意要改动配置文件的全部Allowoverride: 我的需要改动三处才能生效)
在项目根目录下添加.htaccess文件, 文件内容为:3. 在项目根目录下添加.htaccess文件, 文件内容为:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

重启Apache

实际上apache配置url重写与htaccess文件相关联,其运行基本就是靠htaccess文件进行关键和重写的。我不建议各位使用apache了,实际上apache在运行效率上和nginx还是差的太远了,可能在你们测试或者小项目的时候没有什么感觉,但是真的到大项目就会有明显的性能区别。

nginx配置url重写
网上在各种说

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

添加这条记录就可以满足url重写功能,实际上我们在用的时候根本就不会理解为什么这么用,以至于我们配置了还发现用不了,首先,我们来说一下try_files 这个实际上我们可以把他理解为一个系统内部重定向,
我们再来理解一下

$uri  $request_uri 和$query_string 不明白不要紧,

$uri指的是请求的文件和路径,不包括“?”或者“#”之后的东西,$request_uri则是请求的整个字符串,包含了后面的$query_string的。这样说你就可能明白了,这样,我们立马就明白了为什么这么配置不行,实际上,我们只需要加一条这样的配置就可以了

    try_files $request_uri /index.php/$request_uri;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章