嗨stackoverflow用户!
我需要通过访问设置一个url重写来发出这些url请求:
this/kind/of/url
或
this/kind/of/url.php
指向此文件:
this_kind_of_url.php
基本上我需要转换所有" /"我进入了一个" _"如果没有提供,则添加.php扩展名。起初我觉得它不是太复杂了,但现在我几乎要失去理智,因为我对.htaccess很新。
Thanx提前为您提供宝贵的帮助。
答案 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