一尘不染

mod_rewrite,php和.htaccess文件

php

我正在编写一个小型CMS,以更好地了解它们的工作方式并学习有关PHP的一些新知识。但是,我遇到了一个问题。

我想使用mod_rewrite(尽管如果有人有更好的解决方案,我会尝试使用它)来生成漂亮的干净URL,所以site.com/index.php?page=2可以改为site.com/tools

据我了解,每次添加新页面时,我都需要更改.htaccess文件,这是我遇到问题的地方,我的PHP不断告诉我,我无法更新它,因为它没有权限。简短的chmod显示,即使拥有777权限也无法做到,我是否缺少某些东西?

我的mod_rewrite指令源当前在此页面,以防它很重要/有用。


阅读 225

收藏
2020-05-29

共1个答案

一尘不染

一种方法是将所有内容重写为处理脚本

RewriteEngine on
RewriteBase /

# only rewrite if the requested file doesn't exist
RewriteCond %{REQUEST_FILENAME} !-s

# pass the rest of the request into index.php to handle     
RewriteRule ^(.*)$ /index.php/$1 [L]

因此,如果您有请求http:// yourserver / foo / bar /

您实际上得到的是对http://yourserver/index.php/foo/bar的请求-
您可以离开index.php来决定如何处理/ foo / bar(使用$ _SERVER [‘PATH_INFO’]-
tom

您只需要在第一次修改.htaccess。以后所有对不存在文件的请求都可以用PHP处理。

您可能还会发现mod_rewrite的文档很有用-
但保持简单或准备浪费大量的睡眠和头发来查找晦涩的错误。

2020-05-29