.htaccess将this / kind / of / address重写为this_kind_of_address.php

时间:2015-02-23 22:10:16

标签: apache .htaccess mod-rewrite

嗨stackoverflow用户!

我需要通过访问设置一个url重写来发出这些url请求:

this/kind/of/url

this/kind/of/url.php

指向此文件:

this_kind_of_url.php

基本上我需要转换所有" /"我进入了一个" _"如果没有提供,则添加.php扩展名。起初我觉得它不是太复杂了,但现在我几乎要失去理智,因为我对.htaccess很新。

Thanx提前为您提供宝贵的帮助。

1 个答案:

答案 0 :(得分:0)

尝试:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)$ /$1_$2 [E=SLASH:Y,DPI]

RewriteCond %{ENV:SLASH} Y
RewriteRule ^([^/]+?)(?:\.php)$ /$1.php [L,R=301]

要理解这一点有点棘手,但第一条规则检查以确保现有文件或目录的请求不是。如果有'斜杠,然后用_替换它并设置环境变量" SLASH"。此规则将循环,直到URI中不再有/

第二条规则发挥作用的地方。如果设置了环境变量,并且URI中没有更多的斜杠,那么它会重定向浏览器并在最后添加.php,如果没有。

所以:

/this/kind/of/url

被重定向到

/this_kind_of_url.php