为何我访问的域名地址老带个index.php
当您访问一个网站时,如果 URL 后面总是带有 index.php
,这通常是因为服务器配置没有正确设置默认文档。以下是一些可能的原因和解决方法:
1. 修改服务器配置
-
Apache 服务器:
- 编辑 Apache 的配置文件(通常是
httpd.conf
或apache2.conf
),找到DirectoryIndex
指令并修改它以包含index.php
作为默认文档之一。 - 例如: apacheconf
DirectoryIndex index.php index.html index.htm
- 保存文件并重启 Apache 服务器。
- 编辑 Apache 的配置文件(通常是
-
Nginx 服务器:
- 编辑 Nginx 的配置文件(通常是
nginx.conf
或/etc/nginx/sites-available/yourdomain.conf
),找到index
指令并修改它以包含index.php
作为默认文档之一。 - 例如: nginx
location / { index index.php index.html index.htm; }
- 保存文件并重启 Nginx 服务器。
- 编辑 Nginx 的配置文件(通常是
2. 使用 .htaccess 文件
- 如果您没有直接访问服务器配置文件的权限,可以在网站根目录放置一个
.htaccess
文件来设置默认文档。- 例如: apacheconf
DirectoryIndex index.php index.html index.htm
- 例如:
3. 配置 URL 重写
-
Apache 服务器:
- 在
.htaccess
文件中添加 URL 重写规则,将不带index.php
的请求重写到index.php
。 - 例如: apacheconf
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [L]
- 在
-
Nginx 服务器:
- 在 Nginx 配置文件中添加 URL 重写规则。
- 例如: nginx
server { ... location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php last; } index index.php index.html index.htm; } ... }
4. 检查 PHP 配置
- 确保 PHP 配置正确,并且 PHP 模块已经启用。对于 Apache,确保
mod_php
或mod_php7
已经加载。 - 对于 Nginx,确保
fastcgi_pass
指令指向正确的 PHP-FPM 服务。