删除文件php扩展时如何使用参数?

时间:2017-10-15 16:42:38

标签: php .htaccess file mod-rewrite parameters

而不是
http://example.com/file.php?color=red
我想用
http://example.com/file/red

我已将以下代码添加到.htaccess中删除了我的文件扩展名.htaccess会在访问http://example.com/file.php时显示服务器上http://example.com/file/的内容

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]

## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]

现在我正在寻找一种方法将“red”参数传递给文件时将此地址放在网络浏览器中http://example.com/file/red

谢谢!

编辑: 我找到了寻找友好网址的答案,这对我很有帮助。

我最终用这个替换了第一个代码。

Options -MultiViews
RewriteEngine On

# redirect "/file.php?id=xxx" to "/file/xxx"
RewriteCond %{THE_REQUEST} \s/file\.php\?color=([A-Za-z0-9_]+)\s [NC]
RewriteRule ^ /file/%1? [R=301,L]

# internally rewrite "/file/xxx" to "/file.php?id=xxx"
RewriteRule ^file/([A-Za-z0-9_]+)$ file.php?color=$1 [L]

然后使用PHP我只会请求这样的参数。

$color = $_GET['color'];

0 个答案:

没有答案