1

如何通过.htaccess在一行中隐藏文件的扩展名和GET变量?

此代码不起作用:

...
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

4

2 回答 2

2

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

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

然后继续你的第二条规则,它看起来很好。

于 2012-07-26T17:43:15.230 回答
0

这对于静态页面更好。您只需将“索引”更改为您的文件并根据您的更改获取元素。例如,有“id”元素。

RewriteEngine On
RewriteRule ^((?:[a-zA-Z0-9_-]|%20)+)/?$ index.php?id=$1
于 2018-12-11T15:15:19.293 回答