使用 .htaccess 进行多个重定向
我想做这个
website.com/blog/index.php -> website.com/blog
website.com/admin/archief_login.php -> website.com/admin
这适用于我的代码。 但我想添加以下内容:
website.com/aa -> website.com/web/index.php?init=aa
由于某种原因,博客获得此重定向:website.com/blog/?init=blog
设置这些不同重写的最佳方法是什么?
选项所有索引上的 RewriteEngine 重写条件%{HTTP_HOST} ^websit.com$ [或] RewriteCond %{HTTP_HOST} ^www.website.com$ 重写规则^admin$ “http\:\/\/www.website.com\/admin/archief_login.php” [R=301,L]
重写规则^博客$ “http\:\/\/www.website.com\/blog/index.php” [R=301,L]
目录索引client_login.php
重写规则 ^屏幕-([a-zA-Z0-9_-]+).html$ index_client.php?screen=$1
重写规则 ^发票([a-zA-Z0-9_-]+).html$ make_invoice.php?id=$1
重写规则 ^pack-([a-zA-Z0-9_-]+).html$ index_client.php?screen=pack_code&wwwcode=$1
I want to do this
website.com/blog/index.php -> website.com/blog
website.com/admin/archief_login.php -> website.com/admin
this works with my code.
but I want to add this:
website.com/aa -> website.com/web/index.php?init=aa
for some reason the blog gets this redirect: website.com/blog/?init=blog
what is the best way to set these different rewrites?
RewriteEngine on Options All -Indexes
RewriteCond %{HTTP_HOST}
^websit.com$ [OR] RewriteCond
%{HTTP_HOST} ^www.website.com$
RewriteRule ^admin$
"http\:\/\/www.website.com\/admin/archief_login.php"
[R=301,L]RewriteRule ^blog$
"http\:\/\/www.website.com\/blog/index.php"
[R=301,L]DirectoryIndex client_login.php
RewriteRule
^screen-([a-zA-Z0-9_-]+).html$
index_client.php?screen=$1RewriteRule
^invoice([a-zA-Z0-9_-]+).html$
make_invoice.php?id=$1RewriteRule
^pack-([a-zA-Z0-9_-]+).html$
index_client.php?screen=pack_code&wwwcode=$1
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要将更“通用”的规则放在文件的较低位置,这样它们就不会匹配几乎所有的 URL
上面的内容就可以了
如果您颠倒这两个规则,您将得到
You need to put the more "general" rules lower in the file so they don't match almost all of your URLs
The above will do
If you reverse the two rules you will get