htaccess重写规则(任意指向index.php的路径)

时间:2013-04-29 10:17:03

标签: apache .htaccess mod-rewrite url-rewriting rewrite

在某种程度上可能有一个模式代表任何路径序列,它用一个包含给定路径的参数替换我的index.php吗?

我有这条规则 RewriteRule ^([^/.]+)$ /index.php?page=$1 [L]

通过这种方式,可以使用另一个“目录”扩展我的URL:例如www.example.com/Home。它重定向到index.php,get变量显示“Home”。

现在我想改进这个,所以可以做一些像www.example.com/path/to/somewhere这样的东西,它也重定向到我的index.php,变量显示“path / to / somewhere”。它应该允许使用任意数量的斜杠和“目录”条目。 但!所有在其末尾都有文件的网址,即www.example.com/path/to/file.pdf应该不受此重写规则的影响。

我怎么能做到这一点?

1 个答案:

答案 0 :(得分:0)

尝试按照一个

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*)$ index.php?path=$1 [NC,L]

在index.php中,访问路径如下

<?php
echo $_GET['path'];
?>