如何通过.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
应该:
如何通过.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
应该:
您需要在第一条规则中添加一些条件以防止其循环,您可以尝试将其更改为:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]
然后继续你的第二条规则,它看起来很好。
这对于静态页面更好。您只需将“索引”更改为您的文件并根据您的更改获取元素。例如,有“id”元素。
RewriteEngine On
RewriteRule ^((?:[a-zA-Z0-9_-]|%20)+)/?$ index.php?id=$1