从.htaccess重写img源URL

时间:2014-09-17 16:09:59

标签: php image apache .htaccess mod-rewrite

我有点问题。我有错误的来源。

来源是:

<img src="http://mywebsite.com/mk/thumbnail.php?file=file-dtik.jpg&amp;size=article_medium" align="left" alt="image">

需要将源更改为

<img src="http://mywebsite.com/thumbnail.php?file=file-dtik.jpg&amp;size=article_medium" align="left" alt="image">

网站后没有MK文件夹。 我需要通过.htaccess改变这个吗?对此有什么重写规则?

编辑: 另一个问题。这是一些没有正确链接的.pdf链接,我还需要它们与.htaccess重新链接。

http://207.58.130.89/~tempuser/mk/files.php?force&file=documents/documents/file.pdf

这是当前链接,当有人点击时我需要重定向:

www.mydomain.com/mk/files.php?force&file=documents/documents/file.pdf

感谢。

1 个答案:

答案 0 :(得分:2)

通常,您应该始终更喜欢在服务器配置中编写此类重写规则,而不是使用.htaccess样式文件。原因是这些文件非常容易出错,难以调试并且确实会降低服务器速度。

服务器配置的规则示例:

RewriteEngine on
RewriteRule ^/mk/thumbnail\.php$ /thumbnail.php [L,QSA]

此规则只有两个例外:

  • 您无权访问服务器配置
  • 您的代码需要对重写规则集进行动态更改

.htaccess样式文件的规则示例:

(请注意,首先必须在服务器配置中启用此类文件)

RewriteEngine on
RewriteRule ^mk/thumbnail\.php$ thumbnail.php [L,QSA]

要使此规则起作用,.htaccess样式文件必须位于顶层的文档根目录中,mk文件夹存在,物理或虚拟。


免责声明:我没试过这个,对不起,如果有一些错字......

一般情况下,您应始终为这些内容咨询优秀的documentation


如果您在使用此类重写规则时遇到问题,可以从三个基本位置开始调试:

  1. 如果您有权访问服务器日志文件,那么您应该从这里开始:首先,当重写的请求未指向预期位置或以其他方式失败时,您应该看到错误条目

  2. 如果您可以控制服务器配置,则更优雅的是使用内置重写日志记录。它允许非常详细地了解重写引擎内部(或不是)的内容。有关详细信息,请参阅上面发布的文档墨水。

  3. 您可以指定临时和额外的&#34;外部重定向标记&#34;这允许您在浏览器URL栏中查看请求写入的URL。为此,只需将标记[L,QSA] b替换为[L,QSA,R=301],这会导致服务器在http级别上发送外部重定向标头,而不是执行静默和内部重写。这通常有助于了解正在发生的事情。