.htaccess的重写规则是用来修改或重定向URL的规则。它可以帮助网站管理员通过简单的配置文件来实现复杂的URL重写操作,以实现URL美化、SEO优化等功能。
以下是一些常见的.htaccess重写规则示例:
1. 重定向规则:
- 重定向一个URL到另一个URL:
`Redirect /old-page.html /new-page.html`
- 重定向一个文件夹到另一个文件夹:
`Redirect /old-folder/ /new-folder/`
- 重定向一个URL到外部网址:
`Redirect /old-page.html http://www.example.com/new-page.html`
2. URL重写规则:
- 将URL中的扩展名隐藏:
```
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]
```
- 将带有查询参数的URL重写为友好的URL:
```
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^products/([^/]+)/?$ product.php?id=$1 [NC,L]
```
- 将URL重写到一个子文件夹:
```
RewriteEngine On
RewriteBase /subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
```
DirectoryIndex是Apache服务器的一个配置项,用于指定默认访问的文件名。当用户访问一个文件夹时,如果没有指定具体的文件名,默认会访问DirectoryIndex指定的文件。
例如,如果设置了DirectoryIndex为index.php,则当用户访问一个文件夹时,会默认访问该文件夹下的index.php文件。
可以通过在.htaccess文件中添加以下指令来设置DirectoryIndex:
```
DirectoryIndex index.php index.html
```
以上示例指定了默认访问的文件为index.php或index.html。如果访问的文件夹中存在这些文件,则会优先访问这些文件。
综上所述,.htaccess的重写规则可以帮助修改或重定向URL,而DirectoryIndex可以指定默认访问的文件名。两者结合使用可以增强网站的功能和用户体验。