htaccess多个URL缩短器

时间:2014-01-27 11:56:46

标签: php regex apache .htaccess mod-rewrite

我目前有个简介页面的缩写。我现在想在标签页面添加一个额外的缩短器。

CURRENT CODE(适用于个人资料 - 工作正常):

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /cd/profile.php?username=$1

我的问题是当我想要区分模式以添加标签页时:

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^user/()$ dh/profile.php?username=$1 [NC,L]
    RewriteRule ^tag/()$ cd/tags.php?tag_name=$1 [NC,L]

现在,两者都无效。我正在使用XAMP进行测试,目前我的域名将是:

1)个人资料目录 - >本地主机/ CD / profile.php?用户名=约翰

2)标签目录 - >本地主机/ CD / tags.php?TAG_NAME =蓝色

我是否必须将根重组到每个页面?我怎样才能使它发挥作用?

干杯

1 个答案:

答案 0 :(得分:0)

你的正则表达式在两个规则中都不正确。

试试这段代码:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteRule ^user/(.+)$ /dh/profile.php?username=$1 [NC,L,QSA]

RewriteRule ^tag/(.+)$ /cd/tags.php?tag_name=$1 [NC,L,QSA]

另请注意,RewriteCond仅适用于下一个RewriteRule