Home > Article > Backend Development > nginx and apache service url problem
front
,控制器Article
,分别有index
、lists
、show
方法。<code class="php"> #front文章 'blog' => ['front/Article/index', [], []], 'a/:id' => ['front/Article/show', [], []], 'blogs' => ['front/Article/lists', [], []], 'blog/add' => ['front/Article/add', [], []], 'blog/edit/:id' => ['front/Article/edit', [], []],</code>
<code class="php"> public function index() { $this->redirect(Url::build('front/Article/lists', '', false)); }</code>
链接 1
http://www.ibala.top/blog
和链接 2
http://www.ibala.top/blog/
效果是一样的,均是跳转至链接 3
http://www.ibala.top/blogs
;当将项目迁移至线上时,就发现问题了,访问链接 2
时,却会跳转到 链接 4
http://www.ibala.top/index.php/blogs
<code>server { listen 80; #listen [::]:80; server_name ibala.top www.ibala.top; index index.html index.htm index.php; root /home/wwwroot/ibala.top/public; location / { if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break; } } ## php配置,兼容thinkphp框架 location ~ .php { set $path_info ""; set $real_script_name $fastcgi_script_name; if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") { set $real_script_name $1; set $path_info $2; } fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$real_script_name; fastcgi_param SCRIPT_NAME $real_script_name; fastcgi_param PATH_INFO $path_info; fastcgi_param SERVER_PORT 80; include fastcgi_params; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; } location ~ /\.ht { deny all; } ## 禁止敏感文件的直接访问 location ~* \.(inc|bak|sql|lua|so|ini|conf)$ { deny all; } access_log /home/wwwlogs/ibala.top.log; }</code>
front
,控制器Article
,分别有index
、lists
、show
方法。<code class="php"> #front文章 'blog' => ['front/Article/index', [], []], 'a/:id' => ['front/Article/show', [], []], 'blogs' => ['front/Article/lists', [], []], 'blog/add' => ['front/Article/add', [], []], 'blog/edit/:id' => ['front/Article/edit', [], []],</code>
<code class="php"> public function index() { $this->redirect(Url::build('front/Article/lists', '', false)); }</code>
链接 1
http://www.ibala.top/blog
和链接 2
http://www.ibala.top/blog/
效果是一样的,均是跳转至链接 3
http://www.ibala.top/blogs
;当将项目迁移至线上时,就发现问题了,访问链接 2
时,却会跳转到 链接 4
http://www.ibala.top/index.php/blogs
<code>server { listen 80; #listen [::]:80; server_name ibala.top www.ibala.top; index index.html index.htm index.php; root /home/wwwroot/ibala.top/public; location / { if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break; } } ## php配置,兼容thinkphp框架 location ~ .php { set $path_info ""; set $real_script_name $fastcgi_script_name; if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") { set $real_script_name $1; set $path_info $2; } fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$real_script_name; fastcgi_param SCRIPT_NAME $real_script_name; fastcgi_param PATH_INFO $path_info; fastcgi_param SERVER_PORT 80; include fastcgi_params; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; } location ~ /\.ht { deny all; } ## 禁止敏感文件的直接访问 location ~* \.(inc|bak|sql|lua|so|ini|conf)$ { deny all; } access_log /home/wwwlogs/ibala.top.log; }</code>
可以参考这个:http://www.jb51.net/article/8...
不确定能用
估计是nginx配置的问题,给你个配置:
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$1 last;
}
}