【问题标题】:Mod_rewrite rule like facebook have for users像 facebook 这样的 Mod_rewrite 规则为用户提供
【发布时间】:2011-11-28 18:30:38
【问题描述】:

如果有人打字,我想要那个

www.mysite.com/anna

然后它会带它去

www.mysite.com/second.php?user=anna(根目录下的second.php)

在这个 second.php 文件中,有一个指向图片的链接:www.mysite.com/images/img.jpg

那么这张图片也会显示出来。

我试过这条规则:-

RewriteEngine On
RewriteRule ^([A-Za-z0-9-]+)/?$ second.php?
name=$1 [L]

但这对我不起作用:(

2) 用户名​​只能有数字和字母(a-z 或 A-Z)...

3) 如果存在一个目录,那么这个而不是它在根目录中显示该目录的规则。

谁能帮帮我?


它对我不起作用......你给我的脚本......

我找到了一个教程并使用您的一些代码写了这个:-

RewriteEngine On
# if file is not a directory...:
RewriteCond %{SCRIPT_FILENAME} !-d
# ...and if filename doesn't exist:
RewriteCond %{SCRIPT_FILENAME} !-f
# ...then we can process:
# 

RewriteRule ^([^/\.][a-zA-Z0-9]+)/?$ second.php?name=$1 [L]

所以我终于有一个问题....

如果我输入mysite.com/hi 然后一切正常,second.php 显示每个图像和所有文本,但如果我使用这个 mysite.com/hi/ 然后图像不显示。

**

如果您在我的代码中发现任何问题,请编辑它,因为我真的没有 知道我做了什么,唯一的事情是它对我来说很好用 所有的约束。正如我所描述的,只有一个问题

**

【问题讨论】:

  • 你的意思是让你的 RewriteRule 跨越 2 行吗?

标签: apache mod-rewrite redirect


【解决方案1】:

这可能与您想要的非常接近:

RewriteEngine On
# if file is not a directory...:
RewriteCond %{SCRIPT_FILENAME} !-d
# ...and if filename doesn't exist:
RewriteCond %{SCRIPT_FILENAME} !-f
# ...then we can process:
# 
RewriteRule ^([a-zA-Z]+)$ /second.php?user=$1 [QSA]

注意:也许你会想要停止这个过程,如果匹配就不要继续重写。只需在末尾添加 "Last" = "L" 标志:

RewriteRule ^([a-zA-Z]+)$ /second.php?user=$1 [QSA,L]

告诉我它是否有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-15
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多