phpcms 伪静态规则
时间: 2023-08-22 13:11:31 浏览: 255
phpcms 伪静态规则可以通过修改网站根目录下的 .htaccess 文件实现。
以下是一个示例规则:
```
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
```
解释:
- `RewriteEngine On` 开启 URL 重写引擎
- `RewriteBase /` 设置重写规则的基础路径为根目录
- `RewriteRule ^index.php$ - [L]` 不重写 index.php 文件
- `RewriteCond %{REQUEST_FILENAME} !-f` 如果请求的文件不存在
- `RewriteCond %{REQUEST_FILENAME} !-d` 并且请求的目录也不存在
- `RewriteRule . /index.php [L]` 将请求转发到 index.php 文件
这个规则的作用是将所有请求都转发到 index.php 文件处理,达到伪静态的效果。注意,为了使用伪静态,你需要在 phpcms 的后台设置中开启伪静态选项,并且在 .htaccess 文件所在的目录下开启 Apache 的 mod_rewrite 模块。
相关问题
php根据栏目静态,PHPCMS V9自定义栏目伪静态实现方法
PHPCMS V9自定义栏目伪静态实现方法如下:
1. 在 PHPCMS 的后台找到“栏目管理”并进入“修改栏目”页面,找到“栏目目录”一栏,将其改为英文名称,例如“news”。
2. 进入 PHPCMS 的后台,找到“系统设置”并进入“URL设置”页面,选择“伪静态模式”并将“扩展名”设为空,然后在“自定义规则”中添加以下规则:
RewriteRule ^news/([0-9]+)/?$ index.php?m=content&c=index&a=lists&catid=$1 [L]
RewriteRule ^news/index.html$ index.php?m=content&c=index&a=lists&catid=6 [L]
3. 在服务器上开启 Apache 的 mod_rewrite 模块,可以在 Apache 的配置文件(httpd.conf)中添加以下语句:
LoadModule rewrite_module modules/mod_rewrite.so
4. 在 PHPCMS 的根目录下创建一个名为“.htaccess”的文件,并将以下代码复制到该文件中:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
5. 保存并上传“栏目目录”中的所有文件和文件夹。
6. 在浏览器中输入网站地址加上“news/”,例如“http://example.com/news/”,即可访问自定义栏目的静态页面。
注意事项:
1. 请确保服务器已开启 mod_rewrite 模块,并在 Apache 的配置文件中添加了相应的语句。
2. 在修改“栏目目录”和“自定义规则”时,请确保它们的对应关系正确。
3. 如果您不熟悉 Apache 的配置和 mod_rewrite 模块的使用,请谨慎更改。
phpcms url.class.php,PHPCMS为栏目伪静态链接在URL规则中{$categorydir}{$catdir}不解析有效解决办法...
如果你在 PHPCMS 中使用了栏目伪静态链接,但是在 URL 规则中 `{$categorydir}{$catdir}` 无法解析,可能是因为以下原因:
1. 缺少相关配置:请确保在 PHPCMS 后台的“系统-网站配置-URL设置”中已经开启了“启用伪静态”,并且“伪静态后缀”正确设置。
2. 服务器环境问题:请确保你的服务器支持 URL 重写功能,并且已经正确配置了相关规则。
3. URL 规则问题:请检查你的 URL 规则是否正确。在 PHPCMS 中,URL 规则的定义通常在“系统-网站配置-URL规则”中。你可以尝试在规则中添加 `{$categorydir}` 和 `{$catdir}` 变量,如下所示:
```
{$categorydir}{$catdir}-{$page}-{$id}.html => index.php?m=content&c=index&a=show&catid={$catid}&id={$id}&page={$page}
```
注意:如果你修改了 URL 规则,请记得清空 PHPCMS 缓存,以便让新的规则生效。
如果以上方法仍然无法解决问题,你可能需要进一步检查你的代码和服务器环境。
阅读全文