我有一个位于共享主机上的PHP Web应用程序.我的目标是在PHP页面运行时从PHP代码修改.htaccess文件.我需要.htaccess来插入几个mod_rewrite行.
问题是在Windows + Apache上我可以动态修改.htaccess文件,但当我尝试以任何方式访问此文件时,Linux上的相同代码报告问题(copy或fopen):
"failed to open stream: Permission denied"
我给了.htaccess文件777权限 - 仍然没有结果.什么阻止我这样做?我该如何开发解决方法?
PS我最初的目标是能够在.htaccess中添加一个新的RewriteRule,它将新添加的category_id映射到新的category_name.
如果它不是共享主机,我会使用类似RewriteMap(在主Apache配置中)并且能够访问地图文件.
这是我用PHP + Apache无法解决的第一个真正的限制,但我希望它也是可循环的.
这似乎是一个过于复杂的解决方案,只需要一个通用的"加载类别"页面,该页面从URL中获取类别名称并加载相应的ID.
例如,如果URL是:
http://yoursite.com/category/programming
我会将其重新映射为:
http://yoursite.com/category.php?name=programming
我想提出一些其他有用的建议.不是为每个"特殊"网址编写规则,为什么不为所有人使用一个?
我发现使用wordpress使用的内容要容易得多:每个url都被重定向到索引.
您所要做的就是,设置索引文件,读入已加载的目录(可能使用$ _SERVER ['URI_REQUEST']),然后处理它.
添加到.htaccess:
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]
感谢那个chunck,你可以随意使用一个系统.如果你想重新命名你的分类网址,或者添加另一个特殊情况,它已经准备好了!