htaccess 2 mod_rewrite
Posted
技术标签:
【中文标题】htaccess 2 mod_rewrite【英文标题】: 【发布时间】:2012-11-05 03:41:15 【问题描述】:我是 .htaccess 的初学者,谁能帮我解决这个问题?
//我的.ht访问代码
RewriteEngine On
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ /alumini/profile.php?username=$1
//上面我可以重定向url
localhost/alumini/profile.php?username=name
到
本地主机/铝/名称
但我也想将 loacalhost/alumini/index.php 隐藏到 loacalhost/alumini
简单地说……
我想要一个 htaccess 代码来隐藏索引页面,我还需要转换
localhost/alumini/profile.php?username=name
到
本地主机/铝/名称
【问题讨论】:
【参考方案1】:您的第一个请求是重写,而不是重定向。你的第二个是重定向。对于重写,以下规则应该可以解决问题(未经测试):
RewriteRule ^localhost/alumini/([a-zA-Z]+)$ /alumini/profile.php?username=$1
括号内的正则表达式匹配一个或多个大写或小写字母,没有别的,匹配的值被传递给$1。您可能需要根据用户名的格式更改正则表达式。
对于 index.php 重定向(删除存在的 index.php):
Redirect 301 /alumini/index.php http://localhost/alumini
301 代表页面已经永久移动,并且对于 SEO 来说更好,因为只有非 index.php 页面会被索引。
【讨论】:
【参考方案2】:RewriteRule ^localhost/alumini/([a-zA-Z0-9]+)$ /alumini/profile.php?username=$1
RewriteRule ^localhost/alumini$ /alumini/index.php
【讨论】:
您的第二条规则不会阻止人们访问 alumni/index.php - 它需要被重定向。重写只是意味着访问 alumni/ 的人将显示 alumni/index.php 无论如何默认都会发生。 谢谢你帮了大忙:D以上是关于htaccess 2 mod_rewrite的主要内容,如果未能解决你的问题,请参考以下文章