Gallery:模块:重写(rewrite)

来自站长百科
跳转至: 导航、​ 搜索

URL Rewrite (1.1.x)[ ]

开发者参考

描述[ ]

使用mod_rewrite,ISAPI_Rewrite或PathInfo来提供可配置的短URL。

特点[ ]

  • 将URL缩短到人工可读长度的路径。
  • Apache mod_rewrite支持。
  • IIS ISAPI_Rewrite支持。
  • PHP PathInfo支持。
  • 可配置的URL样式。
  • 拦截热链(hotlinked)项目(仅ISAPI_Rewrite 和mod_rewrite)。
  • 其他模块提供有额外的功能。
    • Watermark模块:水印热链(hotlinked)项目(仅ISAPI_Rewrite和mod_rewrite)。
    • Permalinks模块:移动项目时不会改变的永久URL。

用法[ ]

  • 参读插件安装的相关指导,并启用URL重写模块(URL rewrite module)。
  • 你需要在站点管理(Site Admin) -> 插件(Plugins)中对此模块进行配置。

配置页面将显示服务器类型(Aapche或IIS)可用的解析方法。如果你不知道该选择哪种方法,你应该都选择一下看看:mod_rewrite(Apache)或 ISAPI_Rewrite(IIS)。模块将会测试你的服务器是否支持所选的解析方法。如果测试成功的话,就会跳转到模块管理页面,在此就可以激活模块了。

特点请求[ ]

  • 1224224 请勿将.html作为项目URL的后置
  • 当模块处于活动状态时对解析方法进行修改。

Bug[ ]

目前无有关此模块的已知问题。

疑难解答[ ]

如何确定mod_rewrite被装载了?[ ]

打开Gallery的phpinfo页面查看已装置模块的有关信息。如果mod_rewrite被装载了,就可以在列表中看到它。注意,如果PHP在cgi模式下运行的话,此列表将是空的。

gallery2/lib/support/index.php?phpinfo

我确定mod_rewrite被装载了,但为何Gallery告知我此模块无法运行?[ ]

如果你是服务器管理者的话,请确保Gallery的目录具有合适的AllowOverride权限。Gallery需要能够覆盖FileInfo和Options(选项)。在你的Apache配置的末尾加上:

<Directory /full/path/to/gallery2>
    AllowOverride FileInfo Options
</Directory>

我的.htaccess文件丢失,而且站点管理(Site Admin)的链接都无效了。[ ]

参见有关此话题的Gallery2常见问题。 将以下语句加入你的.htaccess,接着打开站点管理(Site Admin) -> URL重写(URL Rewrite)并保存规则以恢复你原来的.htaccess文件。

# 开始Url Rewrite部分
# (自动生成的。请勿编辑此部分)
<IfModule mod_rewrite.c>
    RewriteEngine On

    # Gallery的路径(此例example.com/gallery2/)
    RewriteBase /gallery2/

    RewriteRule ^admin /gallery2/main.php?g2_view=core.SiteAdmin   [QSA,L]
</IfModule>
# 结束Url Rewrite部分

URL Rewrite嵌入[ ]

当对URL Rewrite配置做任何修改(包括规则)时,你需要通过嵌入应用程序访问URL Rewrite管理界面。

Apache mod_rewrite的配置[ ]

请确保Apache用户具有嵌入应用程序所在文件夹中的.htaccess文件的写访问权限。

touch /var/www/localhost/embedApp/.htaccess
chmod 666 /var/www/localhost/embedApp/.htaccess

如果你不愿意让所有人都能写入.htaccess文件的话,你可以在完成安装之后恢复以前的设定--并且不计划修改任何设定(包括Setup标签下的规则)。

chmod 644 /var/www/localhost/embedApp/.htaccess
Access Points

EmbeddedRewrite - Clipboard02.jpg

  1. 打开站点管理(Site Admin) -> URL重写(Url Rewrite) -> 安装(Setup)标签。你需要再次使用嵌入模式来进行此操作。
  2. 填写Htaccess路径。这是你嵌入模式的.htaccess文件的物理位置(/var/www/localhost/embedApp)。
  3. 填写Public路径。这是嵌入应用程序的路径,客户端将从web看到(如,/embedApp或 /)。

验证

URL Rewrite Tests

EmbeddedRewrite - Clipboard04.jpg

  1. 选择测试(Test)标签并查找嵌入的测试
  2. Gallery将进行测试,使你确信已对URL Rewrite模块进行了正确配置。

IIS ISAPI_Rewrite的配置[ ]

EmbeddedRewrite - Clipboard02.jpg

  1. 打开站点管理(Site Admin) -> URL重写(Url Rewrite) -> 安装(Setup)标签。你需要再次使用嵌入模式来进行此操作。
  2. 填写Public路径。这是嵌入应用程序的路径,客户端将从web看到(如,/embedApp或 /)。

PHP路径信息(PHP Path Info)的配置[ ]

无需配置嵌入模式。在修改规则时,你不需要处于嵌入模式中,因为Gallery将会对规则进行解析。