HTACCESS查询字符串不再起作用

时间:2013-11-17 05:22:05

标签: php .htaccess

我在HTACCESS for Custom PHP Website中使用下面的代码块。当我在脚本上回显p1变量时,我得到的值如下:

  

相册/混合主-38

而p1的值应仅为

  

专辑

当我将p2值显示为空白时,p2值的值应为

  

混合主-38

htaccess的

        Options +FollowSymlinks

        ## Mod_rewrite in use.
        RewriteEngine on

        ## Prevent Directory Listing
        IndexIgnore *

        # ---- Make pages render without their extension in the url
        Options +MultiViews

        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*/([a-zA-Z0-9_-]+)|([a-zA-Z0-9_-]+))$ ./index.php?p1=$1&p2=$2&p3=$3&p4=$4&p5=$5 [L]
        RewriteRule ^(.*/([a-zA-Z0-9_-]+)|([a-zA-Z0-9_-]+))$ ./index.php?p1=$1&p2=$2&p3=$3&p4=$4 [L]
        RewriteRule ^(.*/([a-zA-Z0-9_-]+)|([a-zA-Z0-9_-]+))$ ./index.php?p1=$1&p2=$2&p3=$3 [L]
        RewriteRule ^(.*/([a-zA-Z0-9_-]+)|([a-zA-Z0-9_-]+))$ ./index.php?p1=$1&p2=$2 [L]
        RewriteRule ^(.*/([a-zA-Z0-9_-]+)|([a-zA-Z0-9_-]+))$ ./index.php?p1=$1 [L]

1 个答案:

答案 0 :(得分:1)

正则表达式开头的.*相册部分匹配。要单独捕获它,您可以将其放在括号中,这样您就可以:^((.*)/([a-zA-Z0-9_-]+)|([a-zA-Z0-9_-]+))$

请注意,此更改会改变偏移量,因此您可能希望更改$ 1 - > 2美元等等,或者使外部括号不被捕获。