PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > Fastadmin

分享将URL中index.php做301重定向的实现方法

管理员 2024-12-14
Fastadmin
7

在使用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修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部