当前位置:首页 » 编程语言 » 伪静态indexphp

伪静态indexphp

发布时间: 2023-08-04 07:36:25

① apache 伪静态如何隐藏index.php

Apache伪静态配置方法有两种:

在网站根目录下添加文件,.htaccess,在此文件内写伪静态规则,使用它需要在apache配置文件http.conf中完成相应配置.具体配置方法网上很多,这里不再赘述.

而另一种是直接在httpd.conf中使用.这种方法性能高于前者。

应用场景

(1),采用.htaccess的场景

用户需要针对特定目录改变服务器的配置而又没有root权限的情况下,可以通过.htaccess文件实现。

如果服务器管理员不愿意频繁修改配置,则可 以允许用户通过.htaccess文件自己修改配置. 比如ISP,在同一个机器上运行了多个用户站点,希望用户可以自

己改变配置,便可以配置好apache,开启对.htaccess文件的支持即可.

(2),不采用.htaccess的场景

虽然上述步骤1可以实现,但一般都应该尽可能地避免使用.htaccess文件。任何希望放在.htaccess文件中的配置,都可以放在主配置文件(http.conf)的段中,而且更高效。

(3)避免使用.htaccess文件有两个主要原因

首先是性能。如果AllowOverride启用了.htaccess文件,则Apache需要在每个目录中查找.htaccess文件,因此,无论是否真正用到,启用.htaccess都会导致

性能的下降。另外,对每一个请求,都需要读取一次.htaccess文件。

还有,Apache必须在所有上级的目录中查找.htaccess文件,以使所有有效的指令都起作用,所以,如果请求/www/htdocs/example中的页面,Apache必须查找以下文件:

/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess

总共要访问4个额外的文件,即使这些文件都不存在。(注意,这可能仅仅由于允许根目录”/”使用.htaccess ,虽然这种情况并不多。)

其次是安全。这样会允许用户自己修改服务器的配置,这可能会导致某些意想不到的修改,所以请认真考虑是否应当给予用户这样的特权。但是,如果给予用

户较少 的特权而不能满足其需要,则会带来额外的技术支持请求,所以,必须明确地告诉用户已经给予他们的权限,说明AllowOverride设置的值,并引导他

们参阅相应的说明,以免日后生出许多麻烦。

注意,在/www/htdocs/example目录下的.htaccess文件中放置指令,与在主配置文件中段中放置相同指令,是完全等效的。

总结

由上我们可以知道,使用.htaccess文件具有性能上的不利之处,所以我们应该尽可能避免使用.htaccess文件,下面介绍一种不使用.htaccess文件进行伪静态

的方法:

Apache 1.x 的用户请检查 conf/httpd.conf 中是否存在如下两段代码:
LoadMole rewrite_mole libexec/mod_rewrite.so
AddMole mod_rewrite.c

Apache 2.x 的用户请检查 conf/httpd.conf 中是否存在如下一段代码:
LoadMole rewrite_mole moles/mod_rewrite.so
如果存在,且以#开头,请删除#。然后在配置文件(通常就是 conf/httpd.conf或者conf/extra/httpd-vhosts.conf)中加入如下代码。此时请务必注意,如果网

站使用通过虚拟主机来定义,请务必加到虚拟主机配置段 中去,如果加在虚拟主机配置外部将可能无法使用。改好后然后将 Apache 重启。



①.在apache配置文件httpd.conf中找到:

LoadMole rewrite_mole moles/mod_rewrite.so
这句,去掉前边的注释符号“#”,如果没有则添加这句。

②.在代码:

Options FollowSymLinks
AllowOverride None
下面添加伪静态代码(以Wordpress伪静态为例):

RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
其中/usr/local/apache/htdocs/wwwtest即为要进行伪静态的网站的根目录

③.重启apache

② PHP本地如何实现伪静态页面

Apache的 mod_rewrite是比较强大的,在进行网站建设时,可以通过这个模块来实现伪静态。
主要步骤如下: 1.检测Apache是否开启mod_rewrite功能 可以通过php提供的phpinfo()函数查看环境配置,找到“Loaded Moles”,其中列出了所有apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。如果没有开启“mod_rewrite”,则打开目录 apache目录下的“/apache/conf/” ,找到 httpd.conf 文件,再找到“LoadMole rewrite_mole”,将前面的”#”号删除即表示取用该功能。 如果没有查找到“LoadMole” 区域,可以在最后一行加入“LoadMole rewrite_mole ,moles/mod_rewrite.so”(独占一行),之后重启apache服务器。再通过phpinfo()函数查看环境配置就有“mod_rewrite”为项了.。
2.让apache服务器支持.htaccess 如何让自己的本地APACHE服务器支持:“htaccess”呢? 只需修改apache的httpd.conf设置就可以让 APACHE支持“.htaccess”了。打开 APACHE目录的CONF目录下的httpd.conf文件,找到: Options FollowSymLinks AllowOverride None 改为 Options FollowSymLinks AllowOverride All 就行了。
3.建立.htaccess 文件 建立.htaccess文件时要注意,不能直接建,方法是通过记事本中的另存为菜单,在文件名窗口输入:“.htaccess”,然后点击保存。
4.rewrite规则学习 在新建.htaccess文件之后,就在里面写入以下内容: RewriteEngine on #rewriteengine为重写引擎开关on为开启off为关闭 RewriteRule ([0-9]{1,})$index.php?id=$1 在这里,RewriteRule是重写规则,是用正则表达式的句子,([0-9]{1,})表示由数字组成的,$表示结束标志,表示以数字结束!如果要实现伪静态页面,规则如下: RewriteEngine on RewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$index.php?action=$1&id=$2 在为个正则表达式中,([a-zA-Z]{1,})-([0-9]{1,}).html$是规则,index.php?action=$1&id=$2是要替换的格式,$1代表第1括号匹配的值,$2代表第二个括号的值,如此类推! 测试PHP脚本如下: index.php文件中的代码如下: echo ‘你的Action值为:’ . $_GET['action']; echo ‘ ’; echo ‘ID值为:’ . $_GET['id']; ?>
在浏览器地址栏输入: localhost/page-18.html 输出的是: 你的Action值为:page ID值为:18

热点内容
添加到收藏夹的脚本代码 发布:2025-03-23 05:22:42 浏览:646
原神什么配置顶配 发布:2025-03-23 05:22:00 浏览:577
c程序总是编译不过 发布:2025-03-23 05:19:08 浏览:682
刷机网站源码 发布:2025-03-23 05:08:41 浏览:570
一个服务器可以搭建几个sk5 发布:2025-03-23 05:07:21 浏览:265
c语言二维数组初始化 发布:2025-03-23 04:59:55 浏览:887
给细胞编程 发布:2025-03-23 04:59:42 浏览:604
byte二进制java 发布:2025-03-23 04:58:16 浏览:776
反编译dsl文件 发布:2025-03-23 04:58:16 浏览:602
抖音上回娘家的路线图安卓用哪个软件 发布:2025-03-23 04:57:10 浏览:594