手动阀

Good Luck To You!

PHP中的.htaccess伪静态文件

在PHP开发中,.htaccess文件用于配置Apache服务器的URL重写规则,从而实现伪静态效果,伪静态可以让URL看起来更友好、更易读,同时隐藏实际的文件路径和参数。

PHP中的.htaccess伪静态文件

以下是一些常见的.htaccess伪静态规则示例:

基本重定向规则

1、将所有请求重定向到index.php:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?request=$1 [L,QSA]

这条规则会将所有不存在的文件或目录的请求重定向到index.php,并将原始请求路径作为参数传递给index.php

2、将特定格式的URL重定向到相应的PHP文件:

    RewriteEngine On
    RewriteRule ^page/([0-9]+)/?$ page.php?id=$1 [L,QSA]

这条规则会将形如/page/123的URL重写为page.php?id=123

去除URL中的`.php`扩展名

3、去除URL中的.php扩展名:

PHP中的.htaccess伪静态文件

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^\.]+)$ $1.php [NC,L]

这条规则会将形如/about的URL重写为/about.php

处理多个参数

4、处理多个参数的URL:

    RewriteEngine On
    RewriteRule ^user/([0-9]+)/([a-zA-Z]+)/?$ user.php?id=$1&name=$2 [L,QSA]

这条规则会将形如/user/123/john的URL重写为user.php?id=123&name=john

禁止访问某些文件类型

5、禁止访问某些文件类型:

    <FilesMatch "\.(ini|log|sql|sh)$">
        Order Allow,Deny
        Deny from all
    </FilesMatch>

这条规则会禁止直接访问.ini,.log,.sql,.sh等文件。

强制HTTPS

6、强制使用HTTPS:

PHP中的.htaccess伪静态文件

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

这条规则会将所有HTTP请求重定向到HTTPS。

示例综合应用

7、综合应用示例:

    RewriteEngine On
    # 强制HTTPS
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    # 去除URL中的.php扩展名
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^\.]+)$ $1.php [NC,L]
    # 将所有请求重定向到index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?request=$1 [L,QSA]

这些只是一些基本的示例,实际应用中可能需要根据具体需求进行调整,确保在修改.htaccess文件后测试其效果,以确保不会破坏现有的URL结构或功能。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.7.3

Copyright Your WebSite.Some Rights Reserved.