【问题标题】:htaccess - append html or php based on URLhtaccess - 根据 URL 附加 html 或 php
【发布时间】:2015-06-04 05:32:14
【问题描述】:

我有以下规则将 .html 添加到所有请求中,这样如果用户导航到 www.mysite.com/support,他们就会看到我的 www.mysite.com/support.html 页面:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html

如何更改此设置,以便对于特定的 url,它添加 .php 而不是 .html:

  • /support => 应该去 www.mysite.com/support.php
  • /contact => 应该去 www.mysite.com/contact.php
  • /其他一切 => 应该去 www.mysite.com/...html

谢谢。

【问题讨论】:

  • Rewrite rule ^support /support.php
  • 我是先添加,最后添加还是重要?谢谢
  • 在任何规则也匹配并产生不希望的重写之前,基本上。

标签: php apache .htaccess mod-rewrite url-rewriting


【解决方案1】:

我会将您的 .htaccess 更改为:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^support /support.php [L]
RewriteRule ^contact /contact.php [L]
RewriteRule ^(.*)$ $1.html

【讨论】:

  • 那行不通,RewriteRule ^support /support.php [L] 这一行正在抛出服务器错误:服务器遇到内部错误或配置错误,无法完成您的请求。
  • 更新我之前的评论:当我完全按照您的建议进行测试时,我网站上的任何页面都无法正常工作。如果我将该规则移到第 2 行,则除支持页面之外的所有页面都可以工作......它会引发相同的错误。
猜你喜欢
  • 2011-12-06
  • 1970-01-01
  • 1970-01-01
  • 2017-07-14
  • 2017-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多