"漂亮的链接"是一个经常被要求的主题,但它很少被完全解释.mod_rewrite是制作"漂亮链接"的一种方法,但它很复杂,其语法非常简洁,难以理解,文档假定HTTP具有一定程度的熟练程度.有人可以用简单的术语解释"漂亮的链接"是如何工作的以及如何使用mod_rewrite来创建它们?
其他常见名称,别名,干净网址术语:RESTful URL,用户友好的URL,SEO友好的URL,Slugging,MVC url(可能用词不当)
我在htaccess这些类型的规则中多次看到过:
RewriteCond %{HTTP_REFERER} !^http://www.domain.it$ [NC]
Run Code Online (Sandbox Code Playgroud)
要么
RewriteCond %{HTTP_HOST} !^www\.domain\.it$ [NC]
Run Code Online (Sandbox Code Playgroud)
NC当仅检查域部分时,为什么标记是必需的?
我注意到浏览器总是将域名中的大写字母转换成小写字母,所以[NC]在这种情况下我看不出该标志是什么值得使用的.
我的意思是,如果我们检查网址的剩余部分,我理解[NC]在Unix系统上标记原因的需要www.domain.com/index.html是不同的文件,www.domain.com/INDEX.HTML但是NC当我们只检查RewriteRule中的域部分时,我不理解标记的需要.
由于您花时间阅读上述内容,我还要问一个与NC旗帜没有直接关系但与之相关的小问题RewriteCond
RewriteCond上面显示的两个都运行良好,我认为只有点之前的斜线才能工作(!^www\.domain\.it$)因为没有斜线的点应该表示正则表达式中的"任何字符",而\.意思是点字符,但是另外一个表示效果很好,但是你知道为什么?
我想:
http://example.com 重定向到: http://www.example.comhttps://example.com 重定向到: https://www.example.com任何http://whatever.example.com不附加www的东西http://www.whatever.example.com.