假设我的网站上有一个链接,如下所示:www.example.com/test/index.php
。
我想对访问者隐藏“测试”文件夹,并将其显示为“苹果”,以便当用户键入www.example.com/apple
或www.example.com/apple/index.php
时,它会自动重定向到www.example.com/test/index.php
。我想通过如下编辑.htaccess文件来实现这一点:
RewriteEngine On
RewriteRule ^test/(.*) apple/$1
但是,它不起作用。这里有什么问题吗?我将如何重命名文件夹?
答案 0 :(得分:0)
对于PHP文件:
RewriteRule ^/?api/([^/]+)?$ "request.php?rquest=$1" [L,QSA]
RewriteRule ^/?api/([^/]+)/([^/]+)?$ "request.php?rquest=$2&ns=$1" [L,QSA]
request.php
是文件。后面将称为example.com/api/{ns}/{rquest}
,而前面将称为example.com/api/{rquest}
。
如果您要根据需要使用文件夹,则可以使用以下内容。请测试一下,因为我还没有使用过。
RewriteEngine on
RewriteBase /
RewriteRule ^/?apple/([^/]+)?$ "test/index.php?categories=$1" [L,QSA]
这只是一个重写规则。您定义一个模式,然后将其与要重写的模式进行匹配。就那么简单。
是否要忽略后面的斜杠?就像
example.com/help/legal/privacy/eula
应该重写为example.com/help.php?path=/legal/privacy/eula
,然后您必须忽略URL模式中紧跟/
的路径中的help
。
您可以像下面这样简单地更改正则表达式:
RewriteRule ^/?help/(.+)?$ "help.php?topic=$1" [L,QSA]
因此regex使用(.+)
的意思是,采取并采取一切措施,不要停止。
这是URL语法:
RewriteRule {regex_of_url_pattern} "{rewrite_into_what}" [OPTIONS ...]