将URL重写为全部小写字母,并使用.htaccess文件将某些URL重定向到主页
问题描述:
我的问题是我想为.htaccess
文件编写自己的规则。我搜查了互联网,他们没有告诉我如何编写我自己的具体规则。我所知道的是它使用正则表达式。我对正则表达式知之甚少。将URL重写为全部小写字母,并使用.htaccess文件将某些URL重定向到主页
我所寻找的是我有以下链接
http://example.com/work/project-1
http://example.com/work/project-2
当用户输入这样
http://example.com/work/PrOJect-2
我希望他们重定向到(将所有瓶盖小)
http://example.com/work/project-2
但是当用户这样输入时
http://example.com/work/
或
http://example.com/work
我想重定向到主页。
为了这样做我有htaccess文件 其中有像
RewriteEngine On
RewriteRule ^work(.*)/([^/]*) work-single.php$1?slug=$2 [QSA]
一些规则,请帮我写这些规则。
答
你试图实现的称为URL重写。
这里的一个工作.htaccess文件的一个例子:
RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url_params=$1 [L,QSA]
使用设定在上述规则的结果是,从请求完整的URL被传递在服务器侧的index.php ,其中所述串可以使用提取:
$urlString = $_GET['url_params'];
和进一步处理,例如一个切片串入令牌的阵列:
$urlTokens = explode('/', $urlString);
foreach($urlTokens as $token){
// do something with each token
}
最后分析令牌(现在大多数人没有真正手动执行的任务,因为使用了自动处理这个问题的框架。例如Zend框架),为每个有效的“标记”采取适当的行动(在现代框架中称为“路由”)。
对于一个完整的教程如何设置URL重写,您可以检查: https://code.tutsplus.com/tutorials/using-htaccess-files-for-pretty-urls--net-6049
它可以是非常简单的,或完全复杂 - 取决于你的需要。
请记住,这只是一个示例,可能无法满足您的具体情况,您可能需要对其进行定制以满足您的需求 - 或者至少从中学习并解决问题。
我建议您阅读并学习更多关于这个主题,它会让您更容易地使用该技术。
希望它可以帮助一点
我不熟悉编辑的.htaccess但似乎你要根据你输入的URL重定向 - 看看http://yourls.org/这是一个链接用php编写的缩短网站,查看输入的url与mysql数据库进行比较并重定向 - 它可能会给你一些想法 – kerry