当前位置: 首页 > 面试题库 >

mod_rewrite,php和.htaccess文件

孔鸿云
2023-03-14
问题内容

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

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

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

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


问题答案:

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

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的文档很有用-
但保持简单或准备浪费大量的睡眠和头发来查找晦涩的错误。



 类似资料:
  • 我的.htaccess中有这段代码,我需要转换到microsoft azure主机,因为它不起作用。 有人能帮我吗?谢谢各位

  • 问题内容: 如何使用PHP中特定的.htaccess和mod_rewrite页面强制使用SSL / https。 问题答案: 对于Apache,您可以使用强制SSL : 除非为当前连接启用了SSL上的HTTP(即HTTPS),否则该指令禁止访问。这在启用SSL的虚拟主机或目录中非常方便,可防止配置错误暴露应受保护的内容。使用此指令时,将拒绝所有未使用SSL的请求。 不过,这不会重定向到https。

  • 问题内容: 我没有运气让我的.htaccess与mod_rewrite一起工作。基本上,我要做的就是从“ http://www.example.com ”和“ https://www.example.com ”中删除“ www ”。 如果我缺少任何内容(conf文件等,请通知我,我将对此进行更新) 这是我的.htaccess文件(位于@ / var / www / site / trunk / h

  • 问题内容: 好的,我一直在遇到aws或某些问题,以至于我似乎无法使mod_rewrite正常工作。 仅出于测试目的,我做了以下工作: 1使用AWS控制台从向导部署新的AMI 64位实例 2百胜装的apache 3编辑了/etc/httpd/conf/httpd.conf: 好像 4确保 在文件中且未注释。 5重启apache: 6创建了两个新文件: 包含: 包含: 7.创建文件: 包含(共TOTA

  • 以下是我的htaccess代码: 我需要制定一个重写规则,如下所示:

  • 好的,这就是我网站的根目录: 资产 css js img 我现在的工作。htaccess文件的工作方式是隐藏。php从网页这是我想要的。这样我就可以从http://example.com/page2.但问题是如果我去http://example.com/page2/您可以看到没有任何CSS的原始代码。我想将用户重定向到其他地方,或者让它正确显示,不管是否有“/”符号。 将其设置为目录不是一个选项。