将某个目录后的所有内容重写到该目录index.php(htaccess)

时间:2014-03-13 08:11:48

标签: php .htaccess mod-rewrite redirect rewrite

嗨,所以这可能会在其他地方被问到,但我已经搜索过并提出了不相关的结果。 我显然不知道该搜索到底是什么。

我只是想将某个目录后的所有内容重写到该目录index.php。 以下是访问者查看的URL的示例

website.com/search/location/United%20States

我希望将该URL重写为服务器端,以便加载website.com/search/location/index.php
(不是301重定向)

我希望Url保持不变,但加载index.php脚本(包括United%20States,这样就可以传递给PHP以确定位置是什么以及它是否合法等。)< / p>

抱歉,我知道这已经存在,但我找不到它 我已经有了一些代码,但它有错误,似乎选择何时工作,有时还使用location/index.php/United%20States这不是我想要的。

2 个答案:

答案 0 :(得分:0)

将此代码放入htaccess(必须位于根文件夹中)

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^search/location/.+$ /search/location/index.php [L]

答案 1 :(得分:0)

如果您有Apache Web服务器,请确保已启用mod-rewrite并将.htaccess文件放入WEBROOT / search / location目录。把它放到.htaccess文件中:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php [L]

这将在内部将所有不存在文件或目录的请求重定向到index.php。

您也可以将.htaccess文件放入WEBROOT目录并将其写入:

RewriteRule ^search/location/.* /search/location/index.php

希望这有帮助。