【问题标题】:Is possible redirecting without change the url in .htaccess?是否可以在不更改 .htaccess 中的 url 的情况下进行重定向?
【发布时间】:2013-05-26 20:08:18
【问题描述】:

我有这个网址:

http://localhost/search/

这会返回给我这个文件:

http://localhost/search.html

现在我想要具有这种结构的网址:

http://localhost/search/([^/]+)/([^/]+)/([^/]+)/?

也会将我重定向到 search.html 文件。但是不改变网址。

例如这个网址:

http://localhost/search/women/23/shoes/
http://localhost/search/
http://localhost/search/man/45/shirt/

将返回相同的文件:

http://localhost/search.html

注意man 和 women 的 url 在服务器中没有任何现有路径。

任何建议或帮助将不胜感激。如果您需要更多信息,请告诉我,我会编辑帖子。

【问题讨论】:

    标签: .htaccess url redirect


    【解决方案1】:
    RewriteEngine on
    RewriteRule ^search/ /search.html
    

    会正常工作。除非您明确请求外部重定向,否则同一域上的 RewriteRule 不会执行此操作,因此不会更改浏览器中可见的 URL。

    【讨论】:

    【解决方案2】:

    如果您不需要其余的 url,那么您可以使用它

    RewriteEngine On
    RewriteRule ^search/(.*)$ /search.html [L]
    

    如果您需要url的其他参数,请告诉我

    编辑过的版本,Niels Keurentjes 如果您不需要其余的 url,则说明这一点

    RewriteEngine On
    RewriteRule ^search /search.html
    

    【讨论】:

    • 如果你不使用匹配,(.*) 部分已过时,$ 已过时,因为* 默认为贪婪,[L] 修饰符已过时,如果无论如何,这是唯一的规则。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 2013-07-26
    • 2019-01-14
    • 2013-08-11
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    相关资源
    最近更新 更多