【问题标题】:Can .htaccess sanity check?.htaccess 可以进行完整性检查吗?
【发布时间】:2012-09-18 10:50:18
【问题描述】:

我需要快速查看我更新的 .htaccess 文件:

RewriteEngine On
# Redirects errors to 404 page
ErrorDocument 404 /404.php

# Redirect index.php to site root
RewriteCond %{HTTP_HOST} ^mysite.com [NC]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301,NC]
RewriteRule ^index.php$ http://www.mysite.com/ [R=301,L]

# Unless directory remove slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ http://www.mysite.com/$1 [R=301,L]

# Remove .php
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://www.mysite.com/$1 [R=301,L]

# Resolve .php file for extensionless php urls
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^/.]+)$ $1.php [L]

这很简单。

第一个是 404 重定向。
第二个将 www.mysite.com/index.php 重定向到 www.mysite.com
第三个删除斜线。 第四个删除 .php 扩展名。 第五个解析php。

有人可以看看这个,请给我的代码一个快速的健全性检查。

【问题讨论】:

  • 谁投票决定关闭offtopic?
  • 不知道是什么意思?我是新来的:/
  • 如果您觉得有用,请采纳!投票结束主题是因为它可能不是堆栈溢出时接受的问题风格(您没有解决直接问题)

标签: .htaccess


【解决方案1】:

当您重定向用户时,下面的顶部可能更有意义,他们将再次浏览所有 .htaccess 文件。

如果其中任何一个是true,您实际上是在告诉浏览器从不同的网址“[R=301]”再次加载网站。

# Redirect index.php to site root
RewriteCond %{HTTP_HOST} ^mysite.com [NC]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301]
RewriteRule ^index.php$ http://www.mysite.com/ [R=301,L]

您的其他重定向按合理的顺序排列,如果不是目录则删除斜线,如果 php 删除 .php 则解析任何不带斜线的内容。

请注意,如果用户通过特定网址(例如 mysite.com/cake.php/(不存在))访问您的网站,这将导致大量重定向

mysite.com/cake.php/ => mysite.com/cake.php
mysite.com/cake.php => mysite.com/cake
mysite.com/cake => http://www.mysite.com/cake
http://www.mysite.com/cake 解析为 http://www.mysite.com/cake.php - 不存在404 => http://www.mysite.com/404.php
http://www.mysite.com/404.php => http://www.mysite.com/404

尽管总而言之,它可以满足您的需求!

【讨论】:

  • 谢谢,我已经重新定位了。其余的代码可以吗?我在 SO 中浏览了无数页面,并认为它会做我想做的事,我只是希望比我更有经验的人快速浏览一下。谢谢你:)
  • @Pez Cuckow 为什么我们将[NC] 标志与RewriteCondReWriteRuleboth 一起使用?
  • @diEcho 这是从他的代码中获取的,我想他真的想确定它不区分大小写 ;-)
  • @PezCuckow 是的,但为什么我们使用两次?只是一个查询
  • @PezCuckow 我认为它没有目的,我已从上面的答案中删除,它的开销很小
猜你喜欢
  • 2020-11-10
  • 2011-01-10
  • 2018-10-13
  • 1970-01-01
  • 2021-08-29
  • 1970-01-01
  • 1970-01-01
  • 2021-06-04
相关资源
最近更新 更多