今天是:2025年8月17日 星期日
记住用户名密码
可以通过URL重写隐藏应用的入口文件index.php,下面是相关服务器的配置参考
httpd.conf配置文件中加载了mod_rewrite.so模块
AllowOverride None 将None改为 All
把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下
1 2 3 4 5 | <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/ $1 [QSA,PT,L]</IfModule> |
如果你的服务器环境支持ISAPI_Rewrite的话,可以配置httpd.ini文件,添加下面的内容
1 | RewriteRule (.*)$ /index\.php\?s= $1 [I] |
在IIS的高版本下面可以配置web.Config,在中间添加rewrite节点:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <rewrite> <rules> <rule name= "OrgPage" 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> |
在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx.conf中配置转发规则实现
1 2 3 4 5 6 | location / { // …..省略部分代码 if (!-e $request_filename ) { rewrite ^(.*)$ /index.php?s= $1 last; break ; } } |
其实内部是转发到了ThinkPHP提供的兼容模式的URL,利用这种方式,可以解决其他不支持PATHINFO的WEB服务器环境。
如果你的ThinkPHP安装在二级目录,Nginx的伪静态方法设置如下,其中youdomain是所在的目录名称。
1 2 3 4 | location /youdomain/ { if (!-e $request_filename ){ rewrite ^/youdomain/(.*)$ /youdomain/index.php?s= $1 last; }} |
目前有 0 条留言 其中:访客:0 条, 博主:0 条