RewriteRule在加载的文件上获取错误

时间:2015-09-05 03:25:28

标签: php apache .htaccess mod-rewrite url-rewriting

我有以下.htaccess

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ users.php?q=$1 [QSA,L]

但是,如果我进入我网站的任何页面,脚本会显示错误:

  

未捕获的SyntaxError:意外的标记<

发生此错误是因为在脚本文件中,内容被HTML代码替换,我不知道原因。

如果我输入https://somesite.com/Alex/工作正常,如果我输入https://somesite.com/users.php?q=Alex也可以,但是,我希望当我访问https://somesite.com/users.php?q=Alex时将网址替换为https://somesite.com/Alex/

那么,如何解决错误并将其发挥作用呢?

2 个答案:

答案 0 :(得分:1)

使用此规则:

RewriteEngine On
RewriteCond %{THE_REQUEST} /users\.php\?q=([^&\s]+) [NC] 
RewriteRule ^ %1? [NC,R,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^([^/]+)/?$ users.php?q=$1 [NC,QSA,L]

在Apache 2.4上测试

答案 1 :(得分:1)

在这里,简短而甜蜜......

RewriteEngine On
RewriteRule    ^([.*]+)/$    users.php?q=$1    [QSA,L]

希望这有帮助。