ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
时间: 2023-06-25 07:02:58 浏览: 71
是的,ThinkPHP可以利用.htaccess文件的Rewrite规则来隐藏URL中的index.php。这可以让URL看起来更简洁,更易于记忆和分享。
具体实现方法如下:
1. 在项目根目录下创建.htaccess文件;
2. 在.htaccess文件中添加以下代码:
```
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
```
这些规则将URL中的index.php隐藏,并将所有请求重写到index.php文件中处理。
3. 在ThinkPHP的配置文件(config.php)中,将URL模式设置为PATHINFO,即:
```
'URL_MODEL' => 1,
```
这样就可以启用PATHINFO模式,让ThinkPHP按照.htaccess文件中的规则来处理URL。
通过以上步骤,就可以成功地隐藏URL中的index.php了。
相关问题
thinkphp影藏index.php,thinkphp3.2.3中如何隐藏index.php及Home?
在ThinkPHP 3.2.3中,可以通过修改.htaccess文件或者在Apache配置文件中增加重写规则来实现隐藏index.php和Home。
方法一:修改.htaccess文件
1. 首先,确认你的服务器支持.htaccess文件,并且.htaccess文件已经开启。
2. 在项目根目录下新建.htaccess文件,并添加以下内容:
```
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
```
3. 保存并上传.htaccess文件到服务器根目录。
4. 修改配置文件config.php,将URL_MODEL参数改为2。
```
'URL_MODEL' => 2,
```
5. 访问项目时,可以通过访问http://域名/控制器/方法 的方式来访问,而不需要在URL中加上index.php或Home。
方法二:在Apache配置文件中增加重写规则
1. 打开Apache配置文件httpd.conf,搜索LoadModule rewrite_module modules/mod_rewrite.so,并确保该模块已开启。
2. 在VirtualHost标签中添加以下内容:
```
<Directory "/var/www/html">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
```
其中/var/www/html为项目根目录,AllowOverride All表示允许.htaccess文件中的重写规则生效。
3. 在.htaccess文件中添加以下内容:
```
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
```
4. 修改配置文件config.php,将URL_MODEL参数改为2。
```
'URL_MODEL' => 2,
```
5. 访问项目时,可以通过访问http://域名/控制器/方法 的方式来访问,而不需要在URL中加上index.php或Home。
thinkphp6 隐藏public文件夹 和 index.php
A:可以通过以下步骤来隐藏 public 文件夹和 index.php 文件:
1. 在项目的根目录中创建一个 .htaccess 文件(如果不存在)。
2. 在 .htaccess 文件中添加以下代码:
```
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ public/$1 [L]
```
3. 将所有的项目文件(包括 index.php 文件)移动到 public 文件夹中。
4. 建议使用安全性更高的随机名称来命名 index.php 文件,并在 .htaccess 文件中将其指定为默认文件。例如:
```
DirectoryIndex my_random_name.php
```
这样就可以将 public 文件夹和 index.php 文件隐藏起来,提高项目的安全性。