.htaccess隐藏扩展名和变量

时间:2012-07-26 17:26:01

标签: .htaccess

如何通过.htaccess在一行中隐藏文件的扩展名和获取变量?此代码不起作用。

...
RewriteRule ^(.*)$ $1.php [L]
RewriteRule ^file-([0-9]+)\.php$ /some_directory/files.php?id=$1 [L]

示例:

http://www.example.com/file.php?variable=value

应该是:

http://www.example.com/file

2 个答案:

答案 0 :(得分:2)

您需要在第一条规则中添加一些条件以防止其循环,您可以尝试将其更改为:

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

然后继续你的第二条规则,它就像现在一样好。

答案 1 :(得分:0)

这对于静态页面更好。您只需将“ index”更改为文件,并根据您的文件更改get元素。例如,存在“ id”元素。

RewriteEngine On
RewriteRule ^((?:[a-zA-Z0-9_-]|%20)+)/?$ index.php?id=$1