在使用FastAdmin开发过程中,由于FastAdmin基于ThinkPHP开发,采用单入口模式,同时采用了伪静态,可能出现以下两个URL输出相同的内容
http://www.example.com/test/indexhttp://www.example.com/index.php/test/index
这样是不利于SEO优化,因此我们需要将带有index.php
的URL使用301重定向到不带index.php
的URL。
Apache实现方法
打开并编辑public/.htaccess
文件,在RewriteEngine On
后,添加以下代码
# Redirect if index.php is in the URLRewriteCond %{THE_REQUEST} /index.php [NC]RewriteCond %{REQUEST_FILENAME} -fRewriteRule ^index.php([/?]?)(.*)$ /$2 [R=301,L]
最终.htaccess
的代码如下:
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On # Redirect if index.php is in the URL RewriteCond %{THE_REQUEST} /index.php [NC] RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^index.php([/?]?)(.*)$ /$2 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]</IfModule>
Nginx实现方法
找到我们Nginx站点的配置文件,在location / {}
配置之前添加以下代码即可
# Remove index.php$if ($request_uri ~* "^(.*/)index.php$") { return 301 $1;}# Remove from everywhere index.phpif ($request_uri ~* "^(.*/)index.php(/?)(.*)") { return 301 $1$3;}
温馨提示
以上方法在Apache2.4.25和Nginx1.18.0下测试通过,因为Apache和Nginx版本众多,不能保证完全适用你的Web环境,请务必在开发环境测试通过后再同步到生产环境。
希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。