【问题标题】:Rewrite .php to .aff and treat .aff as php将 .php 重写为 .aff 并将 .aff 视为 php
【发布时间】:2010-08-19 08:56:24
【问题描述】:

在我的网站上,我有一个affiliate/ 文件夹。

里面有showgames.php

我希望能够以 www.website.com/affiliates/showgames.aff 的身份访问该文件

在附属文件夹中,我放置了这个 .htaccess

AddType application/x-httpd-php .php .aff
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)\.php$ $1.aff [R=permanent]

由于某些原因,它不起作用。

【问题讨论】:

  • 它不起作用,因为您正在重写它以将请求转发给他们的 .aff 对应方。但要使其正常工作,您必须修改 apache 配置以注册 PHP 解释器的其他扩展。
  • 你为什么不这样做:RewriteRule ^(.*)\.aff(.+)$ $1.php?$2 [L]
  • apache 有注册的 .aff 扩展名吗?

标签: php apache .htaccess rewrite


【解决方案1】:

你误解了什么是重写。

您说您有一个/affiliates/showgames.php 页面,您希望以/affiliates/showgames.aff 访问该页面。这意味着 second 必须在被请求时在内部重写为 first,而不是相反。

这也意味着您不需要将.aff 文件解释为PHP 脚本。只需在 affiliates' .htaccess 中执行此操作:

RewriteRule ^(.*)\.aff$ $1.php [QSA]

【讨论】:

  • 不工作... Q、S 和 A 是什么意思?我试图在附属 htaccess 中只添加该行但没有工作
  • 参见httpd.apache.org/docs/2.2/mod/mod_rewrite.html QSA 的意思是“查询字符串追加”。如果它不起作用,也许你需要RewriteEngine on。否则,您必须比“没有工作”更具体
  • 在 RewriteRule ^(.*)\.aff$ $1.php [QSA] Thx 上添加 RewriteEngine 后,我终于让它工作了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-07
  • 2015-10-22
  • 2014-05-22
  • 2016-01-30
  • 2017-05-31
  • 2016-02-26
  • 2015-03-14
相关资源
最近更新 更多