mod_rewrite:将文件夹转换为查询参数

时间:2013-04-06 01:11:53

标签: php regex .htaccess

大家。我想模拟像Youtube这样的用户系统。例如,如果您输入youtube.com/,它会转到他们的个人资料。我目前正在运行类似的东西。如果您转到example.com/user/,mod_rewrite会将网址更改为example.com/user/?channel=。这工作正常,但我不希望更改URL的可视化。有什么方法我仍然可以将用户名传递给PHP,同时拥有人类可读的URLS?这是我的.htaccess文件的当前示例

RewriteEngine On
RewriteBase /user/
RewriteRule ^(.+) ?channel=$1 [R]

3 个答案:

答案 0 :(得分:0)

是的,您可以:不要将[R] - an "external" redirect用于指定的位置。

答案 1 :(得分:0)

这些规则是你想要的吗?

RewriteRule ^user/? /user/?channel=
RewriteRule ^user/([a-z0-9-_]+)/? /user/?channel=$1

您正在寻找的PHP提示:

<?php
echo basename($_SERVER['REQUEST_URI']);
?>

答案 2 :(得分:0)

如果我理解你想要这个

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/user/(.*)$ 
RewriteRule ^ - [S=1,L]
RewriteCond %{REQUEST_URI} ^/(.*)$ 
RewriteRule ^ /user/?channel%1