使用.HTaccess进行网址重定向并重写

时间:2015-06-02 11:10:31

标签: php apache .htaccess mod-rewrite redirect

有一段时间了,我一直在考虑使用.htaccess,让我的网站上的网址更加用户友好。

在浏览了互联网上似乎无穷无尽的信息流之后,我似乎无法通过简单的英语解释来了解这些命令是如何工作的。

我的托管服务提供商的技术支持团队建议我咨询专业的网络开发人员,所以我觉得这里是个好地方。但如果它在错误的网站上,我会提前道歉。

我认为拥有代码和解释将有助于那些希望获得类似结果的人更快地到达那里,而不是喋喋不休地混淆。

澄清一下,由于我有某些目标,我希望在.htaccess文件中执行以下操作:

  1. 删除文件扩展名(www.mydomain.com/file.html和www.mysubdomain.domain.com/file.html),使网址看起来像www.mydomain.com/file /.
  2. 使这些规则也适用于根和子域的.shtml扩展,这样如果我要在子目录中添加任何.shtml文件,它们将被处理而无需任何额外的工作。
  3. 我希望尽可能少地执行此操作,以便其他人更容易在其网站中迁移和使用。

    在此先感谢您的帮助,我们非常感谢。

2 个答案:

答案 0 :(得分:1)

要删除文件扩展名ExifInterface exif; try { exif = new ExifInterface(filePath); int orientation = exif.getAttributeInt( ExifInterface.TAG_ORIENTATION, 0); Log.d("EXIF", "Exif: " + orientation); Matrix matrix = new Matrix(); if (orientation == 6) { matrix.postRotate(90); Log.d("EXIF", "Exif: " + orientation); } else if (orientation == 3) { matrix.postRotate(180); Log.d("EXIF", "Exif: " + orientation); } else if (orientation == 8) { matrix.postRotate(270); Log.d("EXIF", "Exif: " + orientation); } html,您可以使用以下内容:

shtml

以下是采取的步骤:

  1. 首先,为此请求启用“重写引擎”。
  2. 然后检查RewriteEngine On RewriteCond %{REQUEST_FILENAME}.html -f RewriteRule ^(.*)/$ $1.html [NC,L] RewriteCond %{REQUEST_FILENAME}.shtml -f RewriteRule ^(.*)/$ $1.shtml [NC,L] <request_uri>.html是否存在。如果是,则在内部将<request_uri>.html(最后的正斜杠,如您所指定的)重写为现有文件。
  3. 如果您希望将结尾正斜杠设为可选,则可以将表达式从<request_uri>/更改为^(.*)/$(添加问号使其成为可选项)。

答案 1 :(得分:0)

为您解决方案

要删除扩展程序使用:

RewriteRule ^([^\.]+)$ $1.html [NC,L] 

申请.shtml使用:

RewriteRule ^([^\.]+)$ $1.shtml [NC,L]