单页面

                          针对不同服务器、虚拟空间,运行PHP的环境也有所不同,目前主要分为:Nginx、apache、IIS以及其他服务器。下面分享如何去掉URL上的index.php字符,记得最后要重启服务器,在管理后台清除缓存哦!
                           
                          【IIS服务器】
                          在网站根目录下有个 web.config 文件,这个文件的作用是重写URL,让URL变得简短,易于SEO优化,以及用户的记忆。打开 web.config 文件,在原有的基础上加以下代码片段即可。
                          <rewrite>
                          <rules>
                          <rule name="Imported Rule 1" enabled="true" stopProcessing="true">
                          <match url="^(.*)$" />
                          <conditions logicalGrouping="MatchAll">
                          <add input="{HTTP_HOST}" pattern="^(.*)$" />
                          <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                          <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                          </conditions>
                          <action type="Rewrite" url="index.php/{R:1}" />
                          </rule>
                          </rules>
                          </rewrite>
                           
                          以下是某个香港虚拟空间的效果:
                          <?xml version="1.0" encoding="UTF-8"?>
                          <configuration>
                          <system.webServer>
                          <handlers>
                          <remove name="PHP-7.0-7i24.com" />
                          <remove name="PHP-5.6-7i24.com" />
                          <remove name="PHP-5.5-7i24.com" />
                          <remove name="PHP-5.4-7i24.com" />
                          <remove name="PHP-5.3-7i24.com" />
                          <remove name="PHP-5.2-7i24.com" />
                          <add name="PHP-5.4-7i24.com" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="c:php.4php-cgi.exe" resourceType="Either" />
                          </handlers>
                          <rewrite>
                          <rules>
                          <rule name="Imported Rule 1" enabled="true" stopProcessing="true">
                          <match url="^(.*)$" />
                          <conditions logicalGrouping="MatchAll">
                          <add input="{HTTP_HOST}" pattern="^(.*)$" />
                          <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                          <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                          </conditions>
                          <action type="Rewrite" url="index.php/{R:1}" />
                          </rule>
                          </rules>
                          </rewrite>
                          </system.webServer>
                          </configuration>
                           
                          【Nginx服务器】
                          在原有的nginx重写文件里新增以下代码片段:
                          location / {
                          if (!-e $request_filename) {
                          rewrite ^(.*)$ /index.php?s=/$1 last;
                          break;
                          }
                          }
                           
                          【apache服务器】
                          在apache服务器环境默认自动隐藏index.php入口。
                          如果发现没隐藏,可以检查根目录.htaccess是否含有以下代码段:
                          <IfModule mod_rewrite.c>
                          Options +FollowSymlinks -Multiviews
                          RewriteEngine on
                          RewriteCond %{REQUEST_FILENAME} !-d
                          RewriteCond %{REQUEST_FILENAME} !-f
                          RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
                          </IfModule>

                          如果存在,继续查看apache是否开启了URL重写???rewrite_module , 然后重启服务就行了。


                          凤凰城平台 519| 770| 530| 370| 893| 155| 784| 585| 373| 477| 607| 172| 499| 787| 602| 338| 403| 994| 849| 691| 704| 599| 47| 639| 573| 205| 587| 259| 417| 76| 419| 762| 369| 147| 648| 663| 730| 114| 931| 907| 962|