繁体   English   中英

使用.HTaccess进行URL重定向和重写

[英]Working with .HTaccess for url redirects and rewrites

一段时间以来,我一直在研究使用.htaccess ,以使网站上的URL更加用户友好。

但是,在浏览了互联网上无穷无尽的信息流之后,我似乎找不到一种用简单的英文解释命令的工作方式来进行以下操作的方法。

我的托管服务提供商的技术支持团队建议我咨询专业的Web开发人员,因此我认为这里是一个很好的咨询场所。 但是,如果它在错误的网站上,我向您致歉。

我认为拥有代码和解释将帮助那些希望获得类似结果的人更快地到达那里,而不是四处乱逛和感到困惑。

为了明确起见,由于我有某些目标,因此我希望在.htaccess文件中执行以下操作:

  1. 删除文件扩展名(www.mydomain.com/file.html和www.mysubdomain.domain.com/file.html),以使URL看起来像www.mydomain.com/file/。
  2. 使这些规则也适用于根域和子域的.shtml扩展名,这样,如果我要在子目录中添加任何.shtml文件,则无需进行任何额外的处理即可处理它们。

我想尽量减少行数,以使其他人可以更轻松地在自己的网站中迁移和使用。

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

要删除文件扩展名htmlshtml ,可以使用以下命令:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)/$ $1.html [NC,L]

RewriteCond %{REQUEST_FILENAME}.shtml -f
RewriteRule ^(.*)/$ $1.shtml [NC,L]

这些是采取的步骤:

  1. 首先,为此请求打开重写引擎。
  2. 然后检查<request_uri>.html<request_uri>.html存在。 如果是这样,请在内部将<request_uri>/ (如您所指定的末尾加正斜杠)重写为现有文件。

如果要使尾随斜杠为可选,则可以将表达式从^(.*)/$更改为^(.*)/?$ (添加问号使其成为可选)。

为您提供解决方案

要删除扩展名,请使用:

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

要应用.shtml,请使用:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM