Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在不更改.htaccess中的url的情况下重定向?_.htaccess_Url_Redirect - Fatal编程技术网

是否可以在不更改.htaccess中的url的情况下重定向?

是否可以在不更改.htaccess中的url的情况下重定向?,.htaccess,url,redirect,.htaccess,Url,Redirect,我有这个网址: http://localhost/search/ 这会将此文件返回给我: http://localhost/search.html 现在,我希望URL具有以下结构: http://localhost/search/([^/]+)/([^/]+)/([^/]+)/? 也会将我重定向到search.html文件。但是不更改url 例如,使用以下URL: http://localhost/search/women/23/shoes/ http://localhost/search

我有这个网址:

http://localhost/search/
这会将此文件返回给我:

http://localhost/search.html
现在,我希望URL具有以下结构:

http://localhost/search/([^/]+)/([^/]+)/([^/]+)/?
也会将我重定向到search.html文件。但是不更改url

例如,使用以下URL:

http://localhost/search/women/23/shoes/
http://localhost/search/
http://localhost/search/man/45/shirt/
将返回相同的文件:

http://localhost/search.html
注意:男性和女性的URL在服务器中没有任何现有路径


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

如果您不需要url的其余部分,则可以使用此链接

RewriteEngine On
RewriteRule ^search/(.*)$ /search.html [L]
如果您需要了解url的其他参数,请告诉我

编辑版,如果您不需要url的其余部分,Niels Keurentjes有一点

RewriteEngine On
RewriteRule ^search /search.html

这样就行了。除非您明确请求外部重定向,
重写规则
在同一个域上不会执行此操作,因此不会更改浏览器中可见的URL。

如果您不使用匹配项,
(.*)
部分已过时,
$
已过时,因为默认情况下
*
是贪婪的,
[L]
修饰符如果是其中的唯一规则,则该修饰符已过时。
^/search/
localhost/search
中的
search
不匹配。不是在一个.htaccess文件中。没有尾随斜杠的文件实际上不会匹配,但也没有按要求指定:)我说的是前导斜杠:啊,我的错,完全没有看到-修复了。
RewriteEngine on
RewriteRule ^search/ /search.html