如何在.htaccess中编写mod_rewrite规则

时间:2016-02-25 17:13:46

标签: php apache .htaccess redirect mod-rewrite

我正在使用htaccess文件中的mod_rewrite将一些网址重定向到特定网页。该项目是在核心PHP(没有框架)中开发的,我正在使用xampp服务器,

例如:我希望将以下网址重定向到test.php

localhost/project/any_string.php //should be redirected to any_string.php only
localhost/project/any_string/any_string.php //should be redirected to any_string/any_string.php only

{{1}}

我已启用mod_rewrite,任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果我理解你的需要,我们会这样做:

RewriteEngine On
RewriteRule ^(.*)project/(.*)/(.*).php$ /$2/$3.php [L,R=301]
RewriteRule ^(.*)project/(.*).php$ /$2.php [L,R=301]
RewriteRule ^(.*)project/(.*)test$ /new_test.php [L,R=301]
RewriteRule ^(.*)project/(.*)$ /test.php [L,R=301]

顺便说一句,这里规则的顺序非常重要,所以你必须保持完全相同。

答案 1 :(得分:0)

您正在寻找以下内容吗?

RewriteEngine On
RewriteRule localhost/project/(.*)/test new_test.php [R]
RewriteRule localhost/project/(.*) test.php [R]
RewriteRule localhost/project/(.*)/(.*).php $1/$2.php [R]
RewriteRule localhost/project/(.*).php $1.php [R]

[R]标志强制重定向。 请注意,在较短的匹配之前列出较长的匹配(否则永远不会匹配较长的匹配。)